#include <iostream>
using namespace std;
class T1
{
const int t = 100;
public:
T1()
{
cout << "T1 constructor: " << t << endl;
}
};
Run Code Online (Sandbox Code Playgroud)
当我尝试t用100. 初始化const成员变量时,但是它给了我以下错误:
test.cpp:21: error: ISO C++ forbids initialization of member ‘t’
test.cpp:21: error: making ‘t’ static
Run Code Online (Sandbox Code Playgroud)
如何初始化const值?
想象一下,我有一个C++类Foo和一个类Bar,它必须用一个构造函数创建,其中传递一个Foo指针,这个指针意味着在Bar实例生命周期中保持不变.这样做的正确方法是什么?
事实上,我认为我可以像下面的代码一样编写,但它不能编译..
class Foo;
class Bar {
public:
Foo * const foo;
Bar(Foo* foo) {
this->foo = foo;
}
};
class Foo {
public:
int a;
};
Run Code Online (Sandbox Code Playgroud)
任何建议都是受欢迎的.