返回

【深度剖析】C++的继承、构造函数与成员变量,还有这种类型限定你不可不知!

前端

C++ 作为一门强大的面向对象语言,它提供了一系列特性来帮助开发人员构建复杂而可维护的应用程序。其中,类和继承机制是 C++ 面向对象的重要基础。

类与继承

类是一个用来一类对象的蓝图,它定义了对象的属性和行为。一个类可以从另一个类继承属性和行为,这种特性被称为继承。继承可以帮助开发人员重用代码并创建新的类,而这些新类继承了父类的属性和行为。

在 C++ 中,使用 class 来定义一个类,例如:

class Person {
public:
    string name;
    int age;

    Person(string name, int age) {
        this->name = name;
        this->age = age;
    }

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

这个类定义了 Person 的属性 nameage,以及一个构造函数 Person() 和一个方法 greet()

构造函数

构造函数是一种特殊的成员函数,它在创建对象时被自动调用。构造函数用于初始化对象的属性,并为其设置默认值。在前面的例子中,构造函数 Person() 初始化了对象的 nameage 属性。

成员变量

成员变量是类定义的一部分,它定义了对象的属性。成员变量可以有不同的访问权限,包括 publicprotectedprivatepublic 成员变量可以被任何对象访问,protected 成员变量只能被派生类访问,private 成员变量只能被本类访问。

在前面的例子中,nameage 都是 public 成员变量,这意味着它们可以被任何对象访问。

类型限定

类型限定是指在变量或函数前加上类型名称,以限定变量或函数的类型。在 C++ 中,类型限定可以用来指定变量或函数的类型,也可以用来指定对象的类型。

例如:

class Person {
public:
    string name;
    int age;

    Person(string name, int age) {
        this->name = name;
        this->age = age;
    }

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

int main() {
    Person person("John", 25);
    person.greet();

    return 0;
}

在这个例子中,Person 类被限定为 classmain() 函数被限定为 intperson 对象被限定为 Person

可选属性

可选属性是指可以不赋初值的属性。在 C++ 中,可以使用 ? 来声明一个可选属性。例如:

class Person {
public:
    string name;
    int age?: 0; // 可选属性,默认值为 0

    Person(string name, int age) {
        this->name = name;
        this->age = age;
    }

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

在这个例子中,age 属性被声明为可选属性,它有一个默认值为 0。这意味着如果在创建对象时不指定 age 的值,那么它的值将默认为 0。

结语

在本文中,我们深入剖析了 C++ 中的类、继承、构造函数、成员变量以及类型限定和可选属性。通过这些概念的学习和理解,你能更好理解面向对象程序设计并创建更复杂、更可维护的代码。