this指针:成员函数实际上隐含一个this指针
如上一篇,定义了 void print(student *this){
cout<name<<" "<score<<endl;
}
struct和class区别:
struct里的成员默认是public(公开的)
class里的成员默认是private(私有的)
如果定义了个class 和main ,那么main是访问不到class的, 所以我们需要在class中加入public(这里一般数据还是设置为private比较好,这样main改不了数据,而将函数(如print)改为public)。 即可以用stu.print();
不能用 stu.name或 stu.score。
那我们要如何才能访问到name和score呢?
可用 string get_name() { return name; }double get_score() { return score; }
如何修改name 和 score呢?
用着上面两个函数取代stu.name和stu.score
直接在main中用stu.set_name(“Li Ping”);
stu.set_score(78.5);
示例代码:
student stu ; 在创建一个类对象时,会自动调用称为“ 构造函数 ”的成员函数(如果我们没定义构造函数,会生成默认的构造函数)
构造函数:函数名和类名相同且无返回类型的成员函数 如student(){ }
类名 : 如 class student { }; 当中的student就是类名
程序在main中运行 student stu;时, 会跳转到构造函数;
那也可以用非默认构造函数,即加参数等。
如student(string n, double s)
{
name = n; score = s ;
cout << “构造函数\n”;
}
int main(){
student.stu(“zifuchuan”, 80); // 不能跟之前一样用 student stu;
}
那如果想在main函数中用默认构造函数student stu;
则可在构造函数中加多student(){ }
示例代码:
C++调试:
- 设置断点,在某处点击出现光标 按F9
- 程序跳转到断点处 按F5
- 运行一次 按F11(跳入函数内等)