关于类声明和类定义,我有一个简短的问题。
因此,我可以想到四种不同的类代码场景:
哪些是合格的声明,哪些是合格的定义?为什么?
TIA。
1)
class foo_empty{};
2,3)
class foo_NoMemDef{
int f1(); //Member function declaration(?), no body
//int i; (consider including this as a separate case 3)
};
4)
class foo_final{
int f2(){}
};
答案 0 :(得分:6)
哪些是声明,哪些是定义?
所有示例都显示类定义(也是声明)。不是定义的类声明如下:
class Foo;
一旦您通过{
和}
“打开/关闭”一个类,就会提供一个定义。
答案 1 :(得分:2)
您的所有示例都是类定义,因为它们都最终定义了类;您以后不能再扩展类定义。请注意,为类的一种方法提供实现不会扩展类的接口,因此不会影响类本身的定义。
一个引入类型为“ class”的标签“ foo”的类声明为
class foo;
答案 2 :(得分:0)
在头文件中,您可能会说类似
public class student{
public void UpdateGpa(float grade, int credits);
private float gpa;
private string name;
private int credits;
}
定义了上面的学生示例,并声明了updategpa函数。然后通常在cpp文件中定义它。可能会说
public void UpdateGpa(float grade, int credits){
this.credits+=credits;
gpa= gpa formula
}
这将是UpdateGpa函数的定义。如果您看不到该函数,并且仅从所看到的内容知道其工作原理,则将声明所有内容。如果提供了详细说明函数功能的代码,则将定义所有内容。