Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。

8
/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本CXXABI_1.3.8'[关闭]
关闭。这个问题需要调试细节。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 2年前关闭。 改善这个问题 我最近寻求帮助/programming/20253515/no-idea-as-to-usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxxabi-1-3 -8,它被拒绝投票并关闭(我不知道为什么) 事实证明,“ make install”-安装的make目标并暗示目标“ install-target-libstdc ++ v3”实际上并不意味着您已准备就绪。 我一直在想知道自己在做什么错,因为我认为这样的make目标会为我做到这一点。 我希望这个答案至少可以帮助其他人。
74 c++  linux  unix 


24
未解析的外部符号“ public:虚拟结构QMetaObject const * __thiscall父对象
我从QObject继承了一个类: class Parent: public QObject { Q_OBJECT QObject* cl; public: Parent(QObject *parent=0):QObject(parent) { cl = NULL; } QObject* getCl() const { return cl; } void setCl(QObject *obj) { cl = obj; } }; 但是当我写: Parent ev; 我收到以下错误: main.obj:-1: error: LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall …
74 c++  qt  qobject 

5
为什么OpenMP不允许!=运算符?
我正在尝试编译以下代码: #pragma omp parallel shared (j) { #pragma omp for schedule(dynamic) for(i = 0; i != j; i++) { // do something } } 但我收到以下错误:错误:控制谓词无效。 该OpenMP的标准规定,对于parallel for构造它“仅仅”允许以下的运营商之一:<,<=,> >=。 我不明白不允许这样做的理由i != j。对于,我可以理解,static schedule因为编译器需要预先计算分配给每个线程的迭代次数。但是我不明白为什么在这种情况下会出现这种限制。有什么线索吗? 编辑:即使我做了for(i = 0; i != 100; i++),尽管我可以放“ <”或“ <=”。

5
在Qt应用程序中获取当前工作目录
我正在使用Qt库以C ++编写程序。我的主bin目录中有一个指向可执行文件的符号链接。我希望程序的当前工作目录是我的终端所在的目录(即pwd命令的结果)。我看到了该QDir::currentPath()函数,但是它返回了二进制文件所在的目录。 如何找到当前的工作目录?
74 c++  qt 

3
将参数std :: min更改为浮点数的编译器输出
我在Compiler Explorer中摆弄东西,发现传递给std :: min的参数顺序更改了发出的程序集。 这是Godbolt编译器资源管理器上的示例 double std_min_xy(double x, double y) { return std::min(x, y); } double std_min_yx(double x, double y) { return std::min(y, x); } 它将被编译(例如,在clang 9.0.0上用-O3)为: std_min_xy(double, double): # @std_min_xy(double, double) minsd xmm1, xmm0 movapd xmm0, xmm1 ret std_min_yx(double, double): # @std_min_yx(double, double) minsd xmm0, xmm1 ret 如果我将std :: …

11
C ++成员函数中的“ if(!this)”有多糟糕?
如果我遇到if (!this) return;了应用程序中的旧代码,这有多严重的风险?它是危险的滴答定时炸弹,需要立即在应用程序范围内进行搜索并破坏工作,还是更像是一种可以悄悄放置的代码气味? 当然,我不打算编写执行此操作的代码。相反,我最近在一个旧的核心库中发现了一些东西,供我们的应用程序的许多部分使用。 想象一个CLookupThingy类具有非虚拟 CThingy *CLookupThingy::Lookup( name )成员函数。显然,在那个牛仔时代,一位程序员遇到过多次崩溃,这些崩溃CLookupThingy *是从函数传递NULL的,而不是修复数百个调用站点,而是安静地修复了Lookup(): CThingy *CLookupThingy::Lookup( name ) { if (!this) { return NULL; } // else do the lookup code... } // now the above can be used like CLookupThingy *GetLookup() { if (notReady()) return NULL; // else etc... } CThingy *pFoo = …
74 c++  visual-c++  gcc 

3
为什么我的include防护不能阻止递归包含和多个符号定义?
关于警卫的两个常见问题: 第一个问题: 为什么不包括保护我的头文件不被相互递归包含的保护措施?每当我编写如下内容时,我都会不断收到关于不存在的符号的错误,这些符号显然在那里,甚至是更奇怪的语法错误: “啊” #ifndef A_H #define A_H #include "b.h" ... #endif // A_H “ bh” #ifndef B_H #define B_H #include "a.h" ... #endif // B_H “ main.cpp” #include "a.h" int main() { ... } 为什么在编译“ main.cpp”时出现错误?我该怎么做才能解决我的问题? 第二个问题: 为什么不包括防止多个定义的防护措施?例如,当我的项目包含两个包含相同标题的文件时,有时链接器会抱怨某个符号多次定义。例如: “ header.h” #ifndef HEADER_H #define HEADER_H int f() { return 0; …

7
如何以编程方式获取DLL或EXE文件的版本?
我需要使用C或C ++中的Win32本机API获取DLL或EXE文件的产品版本和文件版本。我不是在寻找Windows版本,而是在DLL文件上单击鼠标右键,选择“属性”,然后查看“详细信息”选项卡所看到的版本号。这通常是一个四部分的虚线版本号xxxx
74 c++  winapi  dll  version  exe 



17
我如何使用ostream在c ++中将未签名的char打印为十六进制?
我想在C ++中使用无符号的8位变量。无论是unsigned char或uint8_t做的伎俩,只要算术而言(这是意料之中的,因为据我所知uint8_t仅仅是一个别名unsigned char,还是让调试器的礼物吧。 问题是,如果我在C ++中使用ostream打印出变量,则会将其视为char。如果我有: unsigned char a = 0; unsigned char b = 0xff; cout << "a is " << hex << a <<"; b is " << hex << b << endl; 那么输出是: a is ^@; b is 377 代替 a is 0; b is ff 我尝试使用uint8_t,但是正如我之前提到的,这是typedefeded的unsigned …

6
C ++内联函数?
我为什么要做这样的事情: inline double square (double x) { return x*x;} 代替 double square (double x) { return x*x;} 有区别吗?
74 c++  inline 

2
C ++中的对象销毁
在C ++中确切地销毁对象是什么意思?因为没有垃圾收集器,我是否必须手动销毁它们?异常如何发挥作用? (注意:这本来是Stack Overflow的C ++ FAQ的条目。如果您想批评以这种形式提供FAQ的想法,那么开始所有这些工作的meta上的发布将是这样做的地方。该问题在C ++聊天室中进行监控,该问题最初是从FAQ想法开始的,所以提出这个想法的人很可能会读懂您的答案。)

3
未定义对静态变量C ++的引用
嗨,我在以下代码中收到未定义的参考错误: class Helloworld{ public: static int x; void foo(); }; void Helloworld::foo(){ Helloworld::x = 10; }; 我不需要static foo()功能。如何static在类的非static方法中访问类的变量?
74 c++  static 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.