提问者:小点点

CPP对类属性和构造函数属性使用相同名称


假设我有一个具有如下构造函数的类。

// CPP
class Person
{
    int age;
    Person(int a)
    {
        age = a;
    }
}

有没有一种方法可以在构造函数的属性中使用'age'而不是'a'?在Python中,这是直接的,如下所示。我很好奇我们是否可以用CPP做同样的事情,因为这将使代码易于阅读。

# Python
class Person:
    def __init__(self, age)
        self.age = age

编辑:已将“void Person(int a)"更改为”Person(int a)"


共1个答案

匿名用户

通常,您应该使用成员初始值设定项列表来初始化成员。此列表是一个特殊情况,其中成员和参数名称之间没有歧义,也没有阴影:

class Person
{
    int age;
    Person(int age) : age(age) {}
                //   member(parameter) 
}

是依赖于此,还是应用区分参数和成员的命名方案,这是一个风格问题,两者都有很好的论据。

有关构造函数和成员初始值设定项列表的更多细节,请访问https://en.cppreference.com/W/cpp/language/constructor。