`
tcspecial
  • 浏览: 916937 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

类成员变量使用带参数的构造函数时

阅读更多

  C++不允许在类定义中初始化成员变量, 必须在构选函数中初始化, 这就带来一个问题, 如果我一个带参数的类怎么声明了

  1. 头文件

private:
    int age;
    ParamClass param; // 只有一个带参数的构造函数

   

  2. 源文件

MyWiget:MyWidget(parent):param("hello"){ }

 

   在类的构造函数内部,给param变量赋值是不恰当的, 因为此时变量已经构造完成了.只能在初始化列表中传递参数

分享到:
评论

相关推荐

    构造函数和复制构造函数

    构造函数是C++中的一种特殊函数,它们的主要作用是初始化对象的状态,并将对象的成员变量初始化为合适的值。构造函数的名称与类名相同,没有返回值(包括void),且只能被调用一次,即在对象创建时。构造函数可以有...

    类构造函数与析构函数

    无参数构造函数用于在对象创建时自动调用,而带参数构造函数用于在对象创建时需要传递参数。 例如,在上面的代码中,我们定义了一个Student类,其中包含一个无参数的构造函数Student()。这个构造函数在对象创建时...

    c#构造函数的调用过程

    接下来,定义了一个派生自`A`的类`B`,它增加了一个新的整型成员变量`y`,并且也提供了三个构造函数:默认构造函数、带一个整型参数的构造函数以及同时接受两个整型参数的构造函数。最后一个构造函数调用了基类的...

    C++构造函数初始化列表

    1. **成员变量初始化**:它能确保类的成员变量在构造函数体执行之前就被正确初始化,这对于包含复杂类型的成员变量尤其重要。 2. **提高性能**:直接初始化可以避免不必要的临时对象创建和复制操作,从而提高程序的...

    包含构造函数和析构函数的C++程序

    构造函数可以被重载,这意味着一个类可以有多个构造函数,但每个构造函数的参数列表必须不同。 在提供的代码示例中,定义了一个名为`Student`的类,其中包含了一个构造函数: ```cpp Student(int n, string nam, ...

    c++构造函数实例质料

    在这个实例中,我们看到了两种不同类型的构造函数:无参数构造函数和带有参数的构造函数。 首先,让我们看看无参数构造函数。在`Student`类中,我们定义了一个名为`Student()`的构造函数,它没有接收任何参数。构造...

    Java继承时构造函数的调用[借鉴].pdf

    st1是使用无参数构造函数实例化的,st2是使用带参数的构造函数实例化的,st3是使用带参数的构造函数实例化的,并且调用了父类的带参数构造函数。 输出结果显示,st1的实例化过程中,先调用了父类的无参数构造函数,...

    实验_构造函数与析构函数.doc

    在构造函数中,我们可以使用this指针来初始化对象的成员变量。 析构函数 析构函数是一种特殊的成员函数,它在对象被销毁时自动调用。析构函数的主要作用是释放对象占用的资源。析构函数的定义格式如下: ```cpp ~...

    C++ 默认构造函数

    如果需要初始化,应该显式地编写无参数构造函数或在类定义中使用成员初始化列表。在涉及容器和动态内存分配时,必须清楚默认构造函数的作用和限制,以避免因未初始化的数据成员而导致的潜在问题。

    建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。

    题目:建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个...

    定义一个名为complex 的复数类,其属性数据为复数的实部和虚部,要求构造函数和拷贝构造函数,并能打印复数的值

    1. 默认构造函数:当没有提供参数时,复数的实部和虚部分别初始化为0。 2. 拷贝构造函数:用于创建一个新对象,它是已存在对象的副本。在这里,我们简单地将源对象的实部和虚部复制到新对象。 `print`方法是一个...

    c#默认构造函数的作用

    默认构造函数是由C#编译器自动为类提供的构造函数,当一个类没有定义任何构造函数时,C#编译器会自动生成一个不带任何参数的构造函数。例如,在给定的部分内容中,类`A`最初并未显式定义构造函数: ```csharp ...

    参数传递的总结——构造函数

    6. **构造函数链**:当一个类继承自另一个类时,子类的构造函数可以调用父类的构造函数,以初始化父类的成员。这通常通过`super`关键字(在Java中)或直接调用父类的构造函数(在C++中)实现。 总之,参数传递在...

    C++构造函数与析构函数.pdf

    此外,构造函数还可以带参数,这样可以在对象创建时传入参数以初始化成员变量。例如,在上面的代码中,我们定义了一个Teacher类,其中有一个带参数的构造函数Teacher(char *input_name),该函数将name成员变量初始...

    C类的成员变量和成员函数-C教程共3页.pdf.zip

    每个类可以有一个默认构造函数和多个带有参数的构造函数。 3. 析构函数:当对象生命周期结束时自动调用,用于清理资源。C++11引入了析构函数的默认规则,如果类中包含动态分配的资源,应提供一个析构函数来释放这些...

    C使用默认参数的构造函数-C教程共3页.pdf.zip

    在构造函数中使用默认参数,可以为用户提供一个更简洁的接口,特别是当类有多个成员变量,而通常情况下我们并不需要全部设置它们的时候。 1. **默认参数的基本概念**: 默认参数是在函数声明时设定的,如果在函数...

    构造函数Demo

    2. 参数化构造函数:可以带有参数,用于在创建对象时传递初始值,帮助实例化对象时进行必要的设置。 二、构造函数的特性 1. 构造函数不能被继承,但可以通过基类的构造函数来调用(使用`base`关键字)。 2. 构造...

    学学Python_42类的成员01 构造函数

    在这里,`ClassName`是你自定义的类名,`param1`, `param2`等是传递给构造函数的参数,`self`是一个指向类实例的引用,`attribute1`, `attribute2`等是类的实例变量,用于存储对象的状态。 描述中提到的链接是一个...

    c++ 类的定义 和构造函数

    2. **带参数的构造函数**:可以为构造函数指定参数,用于初始化成员变量。 ```cpp class Person { public: Person(int a, const string& n) : age(a), name(n) {} private: int age; string name; }; ``` ...

    有关复制构造函数和变量声明

    例如,在下面的代码中,我们定义了一个名为 CExample 的类,它有一个私有成员变量 a 和一个公有成员函数 Show()。在 main() 函数中,我们创建了一个名为 A 的 CExample 对象,并将其复制到一个名为 B 的 CExample ...

Global site tag (gtag.js) - Google Analytics