1、C++ 类和对象
C++中,类是一种用户自定义的数据类型,它将数据(属性,也称为数据成员)和操作这些数据的函数(行为,也称为成员函数)组合在一起。C++是一种面向对象的编程语言。这也是C++与C语言的最大区别,而类和对象就是C++面向对象的基础,对类和对象具有深刻的理解,对于编写C++程序来说也是有一定的帮助。
#include <iostream>
#include <string>
using namespace std;
// 定义一个类
class Person {
public:
// 数据成员
string name;
int age;
// 构造函数
Person(string n, int a) : name(n), age(a) {}
// 成员函数
void introduce() {
cout << "My name is " << name
<< " and I am " << age << " years old." << endl;
}
};
int main() {
// 创建对象
Person p1("John", 30);
// 调用成员函数
p1.introduce();
return 0;
}
2、定义声明类
类的定义和声明有时会分开进行,尤其是在需要提供接口和实现分离时。通常,类的声明是在头文件中进行,而类的定义和实现是在源文件中进行。要创建一个类,需要使用关键字class
:
#include <iostream>
#include<cstring>
using namespace std;
class Person
{
public:
string name;
int age;
char sex;
};
int main()
{
return 0;
}
2、创建对象
在C++中,对象是从类中创建的。我们已经创建了名为Person
的类,所以现在可以使用它来创建对象。
要创建Person
的对象,指定类名,后跟对象名。
例如:
#include <iostream>
#include<cstring>
using namespace std;
class Person
{
public:
string name;
int age;
char sex;
};
int main()
{
Person person1,person2;
return 0;
}
3、对象方法
对象方法(成员函数)是与类的对象关联的函数,用于定义类的行为。它们可以访问和操作对象的成员变量。对象方法分为两种:普通成员函数和常成员函数。
1)普通成员函数
普通成员函数定义了对象的行为,能够访问和修改对象的成员变量。
#include <iostream>
using namespace std;
class Car {
public:
string brand;
int year;
// 构造函数
Car(string b, int y) : brand(b), year(y) {}
// 普通成员函数
void displayInfo() {
cout << "Brand: " << brand << ", Year: " << year << endl;
}
};
int main() {
Car myCar("Toyota", 2020);
myCar.displayInfo(); // 调用成员函数
return 0;
}
2)常成员函数(const成员函数)
常成员函数是指不能修改对象的成员变量的成员函数。它们通常用于保证对象状态不被改变。
#include <iostream>
using namespace std;
class Car {
public:
string brand;
int year;
// 构造函数
Car(string b, int y) : brand(b), year(y) {}
// 常成员函数
void displayInfo() const {
cout << "Brand: " << brand << ", Year: " << year << endl;
}
};
int main() {
Car myCar("Honda", 2021);
myCar.displayInfo(); // 调用常成员函数
return 0;
}
3)静态成员函数(Static Methods)
静态成员函数属于类本身,而不是某个特定的对象。它们不能访问非静态成员。
#include <iostream>
using namespace std;
class Car {
public:
static int carCount; // 静态数据成员
// 静态成员函数
static void displayCount() {
cout << "Total cars: " << carCount << endl;
}
};
// 静态成员变量的定义
int Car::carCount = 0;
int main() {
Car::carCount = 5;
Car::displayCount(); // 调用静态成员函数
return 0;
}