1.类的声明和定义:
主要在类中定义成员变量和成员方法,成员变量就是变量,成员方法就是成员函数。在类中声明成员函数,则不用再作用域,在类外面定义的成员函数,一定要加作用域:类名::,不然编译器会把它当成普通函数而不是成员函数。
2.对成员变量和成员函数的访问:
(1) Stu stu1;
Stu stu 2;
stu1和st2是两个不同的对象,也就是两个不同的变量,变量的一切特性都符合它。它们有各自的成员变量和成员方法。成员函数为对象共用,因为函数只有在执行的时候才生效,函数在代码段,成员变量各自用各自的。
(2).访问方法:
A.对象.成员
Stu stu1;
stu1.age = 10;
stu1.no = 1;
stu1.name = "小明"
stu1.sleep();
B.用引用.成员来访问
Stu stu1;
Stu &stu2 = stu1;
stu2.age=100;
stu2.sleep(); //stu1和stu2是一样的
stu1.sleep();
实例:
1.头文件
#ifndef STU_H_
#define STU_H_
#include <iostream>
using namespace std;
class Stu {
public:
//成员变量
int age;
int no;
string name;
//成员函数
void sleep() {
cout<<"sleep().."<<endl;
}
void study(); //该函数在定义的时候一定要加作用域,不然系统会把它当成普通函数。这样定义的坏处:如果工程 很大的时候,会重复导入该头文件,则重复定义该函数出错,所以C++中建很多工程来避免此错误!
};
void Stu::study() {
cout<<"study().."<<endl;
}
2.定义文件
#include <iostream>
using namespace std;
#include "Stu.h"
void f1() {
//创建Stu类的对象
Stu stu1;//age no name
Stu stu2;//age no name
//访问成员: “对象.成员”
stu1.age = 10;
stu1.no = 1;
stu1.name = "小明";
stu2.age = 20;
stu2.no = 2;
stu2.name= "大明";
//stu1: age10,no=1,name=小明
cout<<"stu1: age"<<stu1.age<<",no="<<stu1.no<<",name="<<stu1.name<<endl;
//stu2: age20,no=2,name=大明
cout<<"stu2: age"<<stu2.age<<",no="<<stu2.no<<",name="<<stu2.name<<endl;
stu1.sleep();
stu2.sleep();
stu1.study();
stu2.study();
}
void f2() {
Stu stu1;
Stu &stu2 = stu1;
stu2.age=100;
cout<<stu2.age<<endl;
cout<<stu1.age<<endl;
stu2.sleep();
stu1.sleep();
}
int main() {
// f1();
f2();
return 0;
}
#endif /* STU_H_ */