当前位置:实例文章 » JAVA Web实例» [文章]C++第四讲

C++第四讲

发布人:shili8 发布时间:2025-02-01 11:29 阅读次数:0

**C++第四讲:类和对象**

在前三讲中,我们已经学习了C++的基本语法、变量类型以及控制结构。今天我们将进入更高级的话题:类和对象。

###什么是类和对象?

在面向对象编程(OOP)中,类和对象是两个核心概念。**类**是一种模板或蓝图,它定义了一个实体的属性和行为。**对象**则是根据类创建出来的具体实例。

### 类的定义在C++中,我们可以使用`class`关键字来定义一个类。下面是一个简单的例子:

cppclass Person {
public:
 string name;
 int age;

 void sayHello() {
 cout << "Hello, my name is " << name << " and I'm " << age << " years old." << endl;
 }
};

在这个例子中,我们定义了一个名为`Person`的类,它有两个属性:`name`和`age`,以及一个方法`:sayHello()`。

### 对象的创建要使用类,我们需要创建一个对象。下面是如何创建一个`Person`对象:
cppint main() {
 Person person;
 person.name = "John";
 person.age =30;

 person.sayHello();

 return0;
}

在这个例子中,我们首先创建了一个名为`person`的`Person`对象,然后设置其属性和调用其方法。

### 类成员函数类成员函数是定义在类内的函数,它们可以访问类的成员变量。下面是一个例子:
cppclass Person {
public:
 string name;
 int age;

 void sayHello() {
 cout << "Hello, my name is " << name << " and I'm " << age << " years old." << endl;
 }

 void setAge(int newAge) {
 age = newAge;
 }
};

在这个例子中,我们定义了一个名为`setAge()`的成员函数,它可以设置对象的年龄。

### 类构造函数类构造函数是用于初始化对象的特殊成员函数。下面是一个例子:
cppclass Person {
public:
 string name;
 int age;

 Person(string n, int a) {
 name = n;
 age = a;
 }

 void sayHello() {
 cout << "Hello, my name is " << name << " and I'm " << age << " years old." << endl;
 }
};

在这个例子中,我们定义了一个名为`Person()`的构造函数,它可以初始化对象的属性。

### 类析构函数类析构函数是用于释放资源的特殊成员函数。下面是一个例子:
cppclass Person {
public:
 string name;
 int age;

 ~Person() {
 cout << "Goodbye, my name is " << name << " and I'm " << age << " years old." << endl;
 }

 void sayHello() {
 cout << "Hello, my name is " << name << " and I'm " << age << " years old." << endl;
 }
};

在这个例子中,我们定义了一个名为`~Person()`的析构函数,它可以释放资源。

### 类继承类继承是指一个类从另一个类继承属性和行为。下面是一个例子:
cppclass Animal {
public:
 string name;
 int age;

 void sayHello() {
 cout << "Hello, my name is " << name << " and I'm " << age << " years old." << endl;
 }
};

class Dog : public Animal {
public:
 string breed;

 void sayHello() {
 cout << "Woof! Hello, my name is " << name << ", I'm a " << breed << " dog and I'm " << age << " years old." << endl;
 }
};

在这个例子中,我们定义了一个名为`Dog`的类,它继承了`Animal`类的属性和行为,并添加了一些新的属性和行为。

### 类多态性类多态性是指同一函数可以有不同的实现方式。下面是一个例子:
cppclass Animal {
public:
 virtual void sayHello() {
 cout << "Hello, I'm an animal." << endl;
 }
};

class Dog : public Animal {
public:
 void sayHello() override {
 cout << "Woof! Hello, I'm a dog." << endl;
 }
};

在这个例子中,我们定义了一个名为`Animal`的类,它有一个虚函数`sayHello()`。然后我们定义了一个名为`Dog`的类,它继承了`Animal`类,并重写了`sayHello()`函数。

### 总结本讲我们学习了C++中的类和对象,包括类的定义、对象的创建、类成员函数、类构造函数、类析构函数、类继承和类多态性。这些概念是面向对象编程的基础,我们将在后续的讲中继续深入探讨。

###习题1. 定义一个名为`Person`的类,它有两个属性:`name`和`age`,以及一个方法`:sayHello()`。
2. 创建一个`Person`对象,并设置其属性和调用其方法。
3. 定义一个名为`setAge()`的成员函数,它可以设置对象的年龄。
4. 定义一个名为`Person()`的构造函数,它可以初始化对象的属性。
5. 定义一个名为`~Person()`的析构函数,它可以释放资源。
6. 定义一个名为`Dog`的类,它继承了`Animal`类的属性和行为,并添加了一些新的属性和行为。
7. 定义一个名为`sayHello()`的虚函数,它可以有不同的实现方式。

### 参考答案1.
cppclass Person {
public:
 string name;
 int age;

 void sayHello() {
 cout << "Hello, my name is " << name << " and I'm " << age << " years old." << endl;
 }
};

2.
cppint main() {
 Person person;
 person.name = "John";
 person.age =30;

 person.sayHello();

 return0;
}

3.
cppclass Person {
public:
 string name;
 int age;

 void setAge(int newAge) {
 age = newAge;
 }
};

4.
cppclass Person {
public:
 string name;
 int age;

 Person(string n, int a) {
 name = n;
 age = a;
 }

 void sayHello() {
 cout << "Hello, my name is " << name << " and I'm " << age << " years old." << endl;
 }
};

5.
cppclass Person {
public:
 string name;
 int age;

 ~Person() {
 cout << "Goodbye, my name is " << name << " and I'm " << age << " years old." << endl;
 }

 void sayHello() {
 cout << "Hello, my name is " << name << " and I'm " << age << " years old." << endl;
 }
};

6.
cppclass Dog : public Animal {
public:
 string breed;

 void sayHello() {
 cout << "Woof! Hello, my name is " << name << ", I'm a " << breed << " dog and I'm " << age << " years old." << endl;
 }
};

7.
cppclass Animal {
public:
 virtual void sayHello() {
 cout << "Hello, I'm an animal." << endl;
 }
};

class Dog : public Animal {
public:
 void sayHello() override {
 cout << "Woof! Hello, I'm a dog." << endl;
 }
};

其他信息

其他资源

Top