例子代码如下
#include<iostream>
using namespace std;
class Student // 以 class 开头
{
public:
void display(); // 这是成员函数
private:
int num;
char name[20];
char sex; // 以上3行是数据成员
protected:
};
void Student::display() // 指Student类中的display函数(别忘了返回值类型)
{
cout << num << endl;
cout << name << endl;
cout << sex << endl;
}
//==========================
struct Student2 // 以 class 开头
{
int num;
char name[20];
char sex; // 以上3行是数据成员
void display() // 这是成员函数
{
cout << "num" << endl;
cout << "name" << endl;
cout << "sex" << endl;
}
};
int main()
{
Student a;
a.display();//正常
//Student2::a.dispaly();//这是不行的,不同类里的同名成员无法区分开
//a.display;//撒比错误1
//cout << a.display << endl;//撒比错误2
return 0;
}
1.错误 C3867 “Student::display”: 非标准语法;请使用 "&" 来创建指向成员的指针
a.display;//撒比错误1
c语言用的很多,但c++没怎么好好学。。“对象.成员”没错,但是函数调用时都要加“函数运算符()”给忘了- -。
2.错误 C2679 二进制“<<”: 没有找到接受“void”类型的右操作数的运算符(或没有可接受的转换)
cout << a.display() << endl;//撒比错误2
刚解决上个问题,这个问题则是要输出没有返回值的函数= =。不带括号的变量我在c++里总是和函数搞混= =,毕竟多了个成员运算符“.”……
3.错误(活动) E0135 class "Student" 没有成员 "a"
错误 C2039 “a”: 不是“Student”的成员
错误 C2039 “dispaly”: 不是“Student”的成员
Student::a.dispaly();//这是不行的,不同类里的同名成员无法区分开
本来想区分一下两个“Student”类和“Student2”类的同名成员“a”。结果失败了= =。。好好起别的名字吧
而命名空间是为了解决同名类的问题的,洗洗睡吧……