C++ Classes and Xcode
C++ Classes and Xcode
我不明白为什么Xcode在第3行给我"预期参数声明符"错误。你能解释一下后面发生了什么吗?
class B;
class A {
B b(this);
};
class B {
B(A* a) { }
};
在A
的构造函数中初始化b
,并具有构造函数public
:
class A;
class B {
public:
B(A* a) { }
};
class A {
public:
A() : b(this) {}
B b;
};
int main()
{
A a;
}
错误的原因是类中成员初始化需要使用=
或{}
,而不是()
,尽管我同意"预期参数声明"answers"预期'('"不是特别有用的错误消息。
此外,在您声明使用B
的构造函数初始化b
时,编译器还不知道该构造函数。将B
的定义移到A
之前以解决此问题:
class A;
class B {
public:
B(A* a) { }
};
class A {
B b = B(this);
// or
B b{this};
};
相关文章:
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么 Clang 不允许"and"作为函数名称?
- 位阵列上的快速AND运算
- 是否可以在 C++03 中定义'move-and-swap idiom'等效项
- Xcode 语义问题引用或以前定义的代码
- BoostPython and CMake
- 使用 Xcode 将双精度存储在数组C++中
- OpenSSL BIO and SSL_read
- Xcode 9.4.1 中的 Apple Mach-O 链接器 (id) 错误
- Gurobi GRBModel and GRBmodel in C++
- XCode and _bittest function
- Xcode 8, Swift and C++
- Xcode and C++ Headers
- Boost, Lib C++ and Xcode
- Homebrew, xCode 6.4 and boost
- Xcode 5.1.1 and Boost
- C++ Classes and Xcode