`
zhouyu260
  • 浏览: 10119 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

成员变量的初始化与构造函数

    博客分类:
  • c++
J# 
阅读更多
#include <iostream>
using namespace std;
class demo {
public:
	demo() {
		x = 0;
		cout << "demo的默认构造函数!" << x << endl;
	}
	demo(int i) {//此构造方法被调用两次
		x = i;
		cout << "demo的带一个参数的构造函数!" << x << endl;
	}
	~demo() {//析构方法在最后调用两次
		cout << "demo的默认析构函数!" << x << endl;
	}
	int get() {
		return x;
	}
	void set(int i) {
		x = i;
	}
private:
	int x;
};
class rectangle {
public:
	rectangle() {
		x = 1000;
		cout << "rectangle的默认构造函数!" << x << endl;
	}
	rectangle(int i, int j, int k) :
		x(i), width(j), length(k) {//调用过程按照成员变量的先后顺序
		cout << "rectangle的带三个参数的构造函数!" << "长方形b的面积为:" << length.get()
				* width.get() << endl;
	}
	~rectangle() {
		cout << "rectangle的默认析构函数!" << x << endl;
	}
	int area() {
		return length.get() * width.get();
	}
private:
	demo length;//成员变量列表包含其他类对象叫做包容
	demo width;
	int x;
};
int main() {
	rectangle a(100,200,300);
	return 0;
}
分享到:
评论

相关推荐

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

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

    C++全局变量初始化的一点总结

    C++中的全局变量初始化是一个重要的话题,涉及到程序的正确性和可预测性。全局变量,即具有静态存储期的变量,其生命周期始于程序开始,终于程序结束。本文将深入探讨全局变量初始化的时机、方式以及一些处理特殊...

    c++能不能给类的成员变量在声明的时候初始化? - life_limbo - 博客园1

    2. **初始化列表初始化**:接着执行构造函数的初始化列表,其中的初始化顺序与成员变量声明的顺序一致,而不受初始化列表中实际顺序的影响。例如`A(int a_):a(a_){};` 3. **构造函数体内的初始化**:最后执行构造...

    Qt变量初始化,为何要与声明的次序保持一致?-CSDN论坛1

    在编程语言中,特别是在C++和Qt框架下,变量初始化的顺序确实是一个重要的概念,它与成员变量在类中的声明顺序密切相关。这个问题涉及到C++的构造函数和成员初始化列表。 在C++中,当创建一个类的对象时,构造函数...

    c++ 子类构造函数初始化及父类构造初始化的使用

    在 C++ 中,子类构造函数的初始化涉及到父类构造函数的调用,否则将无法正确地初始化从父类继承来的成员变量。本文将详细介绍 C++ 子类构造函数初始化及父类构造初始化的使用。 首先,我们需要了解构造函数的基本...

    C++类成员和数据成员初始化总结

    1. **const、引用和特定类型的成员**(如没有默认构造函数的类类型成员)必须在构造函数的初始化列表中初始化,因为它们不能在构造函数体内赋值。 2. **成员初始化的顺序**并不受它们在构造函数中出现的位置影响,...

    C++关于构造函数的初始化

    在C++编程语言中,构造函数是一种特殊类型的成员函数,它的主要职责是初始化类的对象。当我们创建一个类的实例时,构造函数会被自动调用,用于设置对象的初始状态。本文将深入探讨C++构造函数中的初始化,包括传统的...

    Java变量初始化

    Java 变量初始化详解 Java 变量初始化是 Java 语言的基础知识点之一,但也往往被学习者所忽略。 Java 变量初始化的时机是指在 Java 语言中变量的初始化过程,包括变量的声明、初始化和赋值的步骤。 Java 变量声明 ...

    构造函数和复制构造函数

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

    Java静态和非静态成员变量初始化过程解析

    通过这两个示例,我们可以看到,非静态成员变量的初始化顺序是:成员变量初始化语句>成员变量初始化块>构造函数。 而对于静态成员变量,它们是在类加载时初始化的。例如,我们可以定义一个静态成员变量static ...

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

    实验_构造函数与析构函数.doc 本实验的主要目的是了解和掌握构造函数和析构函数的定义、使用和重载。在本实验中,我们将学习如何定义和使用构造函数、析构函数,并了解this指针的作用和用法。 构造函数 构造函数...

    类的static,const,static const,const static成员的初始化

    因此,static 成员变量不能在定义对象时对变量初始化,用构造函数来初始化。其正确的初始化方式是: ```cpp class Foo { private: static int i; }; int Foo::i = 100; // 在类体外初始化 ``` 这表明: * 初始化...

    构造函数与静态块的执行顺序

    静态块常用于初始化静态变量或执行一次性的初始化操作。 ### 继承中构造函数与静态块的执行顺序 在Java中,当一个类继承自另一个类时,实例化子类对象时构造函数与静态块的执行顺序遵循以下规则: 1. **静态块的...

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

    还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。 编程环境:vs2010,语言:...

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

    构造函数与析构函数是C++编程语言中非常重要的概念,它们在类的实例化和销毁过程中扮演着关键角色。通过理解这些函数的工作原理及其作用,我们可以更好地控制对象的生命周期,确保资源得到妥善管理。 #### 构造函数...

    解决C++全局变量只能初始化不能赋值的问题

    C++中,全局变量只能声明、初始化,而不能赋值 也就是说,下面这样是不被允许的: #include using namespace std; int a; a = 2; int main() { return 0; } 错误提示是: C++ requires a type specifier for all...

    C++初始化成员列表.

    在使用初始化成员列表时,需要注意构造函数中成员的初始化顺序与其在声明时的顺序是一致的,与列表的先后顺序无关。例如: ```cpp class Example { public: Example(): ival(0), dval(0.0) {} private: int ival;...

    C++中成员初始化列表的使用

    成员初始化列表提供了更灵活且高效的成员变量初始化方式,特别是在处理对象成员、const 成员以及引用成员时。通过使用成员初始化列表,可以避免不必要的复制操作,提高程序效率,并确保程序逻辑的正确性。对于初学者...

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

    C++构造函数与析构函数.pdf C++构造函数是类中的特殊成员函数,主要用于对象的初始化和销毁。构造函数的主要作用是对类对象成员的初始化,使得类对象在创建时自动调用构造函数对成员变量进行赋值操作。 根据C++的...

Global site tag (gtag.js) - Google Analytics