나는 많은 다른 질문과 답변을 보았으며 누구도 같은 질문을하는 것 같지 않습니다.같은 클래스의 멤버에 대한 참조를 선언하는 방법은 무엇입니까?
클래스 내에서 변수에 대한 참조를 만들려고합니다. 필자가 작성한 큰 프로그램의 일부를 꺼내 작은 파일 인 test.cpp에서 격리했습니다. 내 문제는 내가 변수를 참조와 함께 사용하는 방법과 관련이 있다고 생각했지만 큰 메시지에서와 같은 메시지가 나타났습니다.
#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;
}
나는이 메시지를받은 :
warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
int& rtest = test;
In function ‘int main()’: error: expected primary-expression before ‘.’ token
std::cin >> Test.rtest;
error: expected primary-expression before ‘.’ token std::cout << "\n" << Test.rtest << "\n";
가 왜이 무엇입니까 여기
내 코드? 내가 할 수있는 일이 가능합니까? 그렇다면 어떻게 할 수 있습니까? 당신이로 활성화-std=c++11
컴파일러 플래그가없는 한
int main() {
Test t; // <<<<<<<<
std::cout << "Enter an integer: ";
std::cin >> t.rtest;
std::cout << "\n" << t.rtest << "\n";
}
은 또한 당신이 적절한 생성자의 참조를 초기화해야합니다
플래그를 g ++에 전달하면 작동하는 방식을 찾는 데 몇 분이 걸렸습니다. –