C++ 如何声明对同一类中成员的引用?
我看了很多其他的问题和答案,似乎没有人有和我一样的问题 我试图在类中引用变量。我取出了我正在编写的较大程序的一部分,并将其隔离在一个小文件中:test.cpp。我想我的问题可能与我如何使用变量和引用有关,但是在更大的程序中出现了相同的消息 这是我的密码:C++ 如何声明对同一类中成员的引用?,c++,class,c++11,reference,C++,Class,C++11,Reference,我看了很多其他的问题和答案,似乎没有人有和我一样的问题 我试图在类中引用变量。我取出了我正在编写的较大程序的一部分,并将其隔离在一个小文件中:test.cpp。我想我的问题可能与我如何使用变量和引用有关,但是在更大的程序中出现了相同的消息 这是我的密码: #include <iostream> class Test { public: int test; int& rtest = test; }; int main() { std::cout &l
#include <iostream>
class Test {
public:
int test;
int& rtest = test;
};
int main() {
std::cout << "Enter an integer: ";
std::cin >> Test.rtest;
std::cout << "\n" << Test.rtest << "\n";
return 0;
}
#包括
课堂测试{
公众:
智力测验;
int&rtest=测试;
};
int main(){
std::cout>Test.rtest;
std::cout您需要一个Test
的实例来访问类的非静态成员:
int main() {
Test t; // <<<<<<<<
std::cout << "Enter an integer: ";
std::cin >> t.rtest;
std::cout << "\n" << t.rtest << "\n";
}
您需要有Test
的实例才能访问类的非静态成员:
int main() {
Test t; // <<<<<<<<
std::cout << "Enter an integer: ";
std::cin >> t.rtest;
std::cout << "\n" << t.rtest << "\n";
}
警告:非静态数据成员初始值设定项仅适用于-std=c++11或-std=gnu++11 int&rtest=test
您需要将标志<代码> -STD= C++ 11 传递给编译器,否则默认为C++的旧版本,不允许用这种方式初始化类成员。
在函数“int main()”中:错误:“.”标记std::cin>>Test.rtest之前应为主表达式;
错误:应在“.”标记std::cout之前使用主表达式
警告:非静态数据成员初始值设定项仅适用于-std=c++11或-std=gnu++11 int&rtest=test
您需要将标志<代码> -STD= C++ 11 传递给编译器,否则默认为C++的旧版本,不允许用这种方式初始化类成员。
在函数“int main()”中:错误:“.”标记std::cin>>Test.rtest之前应为主表达式;
错误:应在“.”之前使用主表达式。令牌std::cout将标志传递给g++确实有效,但我花了几分钟的时间研究如何执行。将标志传递给g++确实有效,但我花了几分钟的时间研究如何执行。回答很好。感谢共享编译器标志尼斯答案。感谢分享编译器标志
class Test {
public:
int test;
int& rtest; // Nope! = test;
Test() : test(), rtest(test) {} // <<<<<<<<<<<<<<<<<<
};