我在查看源代码时意外地发现了这个内容。所以,我在此提供一个类似但更简短的例子。
在文件 test.h 中:
#include<iostream>
class test{
int i;
public:
test(){}
//More functions here
};
在文件 test.cpp 中:
#include "test.h"
int main()
{
test test1;
test::test test2;
test::test::test test3;
return 0;
}
首先,声明test2
那样做有什么理由吗?其次,在g++版本4.4.3及更低版本中,此代码可以编译通过。C++标准中是否有规定当没有需要解析作用域时,作用域解析运算符会被忽略?