ipk*_*iss 1 c++ resolution operators
我正在学习C++,并且不太了解Scope Resolution Operator.假设我有以下代码:代码1:
class Student {
int no;
int semester;
char grade[M+1];
public:
void display() const;
};
void Student::display() const {
cout << "Hi!" << endl;
}
Run Code Online (Sandbox Code Playgroud)
代码2:
class Student {
int no;
int semester;
char grade[M+1];
public:
void display() const{
cout << "Hi!" << endl;
}
};
Run Code Online (Sandbox Code Playgroud)
如果我在其类中定义display(),有什么区别吗?如果没有区别,那我为什么要使用范围解析运算符?
小智 6
有一个区别 - 如果在类中定义,则函数的行为就像声明为inline.但这没什么大不了的,编译器可能会忽略它.最大的区别在于,对于大型多文件项目,如果对标头中定义的函数体进行更改,则必须重新编译使用标头的其他任何文件.然而,如果对.cpp文件中定义的函数体进行更改,则只需要重新编译该文件.这可以而且确实对现实世界的项目产生巨大影响.
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |