在C++中通常有main函数以及一个或多个既包含数据成员也包含成员函数的类构成,所以:
- 在一个类中,可提供一个或多个成员函数。
- 类似的,对象也有属性,在程序中使用对象时带有这些属性。这些属性是对象所属的类的一部分。
image.png
定义一个具有成员函数的类
//定义
class GradeBook {
//
public:
void displayMessage(){
cout<<"grade book"<<endl;
}
};
//调用
void funcTestGradeBook(){
GradeBook myGradeBook;
myGradeBook.displayMessage();
}
输出
Hello, World!
grade book
Program ended with exit code: 0
- 类的定义由
class
及随后的类名GradeBook开始,类名通常使用驼峰模式拼写,通常首字母大写。 - 每个类体由左右打括号
{}
括起来。 - 类定义由
;
分号结束。 - 成员函数的访问限定符有:
public
、private
、protected
三种。 - 在定义函数时,必须指定返回值类型。
- 成员函数名后的空括号表示该成员函数不需要传参。
定义一个有参成员函数
//定义一个有参成员函数
void displayMessageWithParms(string courseName){
cout<<"grade book"<< courseName <<endl;
}
调用
string courseName;
cout<< "enter course name:"<<endl;
getline(cin, courseName);
cout<<endl;
myGradeBook.displayMessageWithParms("Chinese");
myGradeBook.displayMessageWithParms(courseName);
输出
enter course name:
kjjkjkj
grade bookChinese
grade bookkjjkjkj
Program ended with exit code: 0
数据成员、set函数与get函数
- 在函数定义体重声明的变量称为局部变量,它们只能在从声明它们的行到该函数定义的结束右打括号
}
的范围内使用。 - 类通常包含一个或多个成员函数来操作属于该类特定对象的属性。属性在类定义中表示为变量。
class GradeBookHaveLocalVariable{
public:
void setCourseName(string name){
courseName = name;
}
string getCourseName(){
return courseName;
}
void displayMessage(){
cout<<"course name: "<< getCourseName() <<endl;
}
//定义一个有参成员函数
void displayMessageWithParms(string courseName){
cout<<"grade book"<< courseName <<endl;
}
private:
string courseName;
};
输出
course name: 语文
Program ended with exit code: 0
用构造函数初始化对象
构造函数:
- 用于在创建该类对象时初始化该对象。
- 是一个特殊的成员函数,它的名字必须与类名相同。
- 不能有返回值。
- 通常声明为
public
class GradeBookConstructor{
public:
GradeBookConstructor(string name){
setCourseName(name);
}
void setCourseName(string name){
courseName = name;
}
string getCourseName(){
return courseName;
}
void displayMessage(){
cout<<"course name: "<< getCourseName() <<endl;
}
//定义一个有参成员函数
void displayMessageWithParms(string courseName){
cout<<"grade book"<< courseName <<endl;
}
private:
string courseName;
};
void funcTestGradeBookConstructor(){
GradeBookConstructor myGradeBookConstructor1("Constructor");
GradeBookConstructor myGradeBookConstructor2("构造函数");
myGradeBookConstructor1.displayMessage();
myGradeBookConstructor2.displayMessage();
}
输出
course name: Constructor
course name: 构造函数
Program ended with exit code: 0
demo链接🔗https://github.com/samtake/C-review
end;