构造函数的重载

    重载 --- 一词多用

 1 //  上一次  是 在构造函数体内 通过赋值语句对数据成员实现初始化
 2 // C++ 还有 一种 初始化 数据成员的 方法 --参数初始化表  来实现对
 3 // 数据成员的初始化 , 这种方法不在 函数体内 对成员初始化  而是在 函数的首部实现
 4 //例如定义构造函数 可以改用 以下形式
 5 /* box::box(int h,int w,int len):height(h),width(w),length(len){} */
 6 //   表示 用 形参 h 的值  初始化 height 后面的  花括号 是空的  , 即 函数体是空的 没有任何执行语句
 7 #include<iostream>
 8 using namespace std;
 9 class box
10 {
11 public:
12     box();   // 声明一个无参的构造函数 box
13     box(int h,int w,int len):height(h),width(w),length(len){}  //声明一个有参的构造函数
14     int volume();   //   声明一个 求体积的 函数
15 private:
16     int height;
17     int width;
18     int length;
19 };
20 box::box()        //   在 类外定义 无参函数 box0
21 {
22     height=10;
23     width=10;
24     length=10;
25 }
26 int box::volume()    //  在类外 定义 成员函数 volume
27 {
28     return(height*width*length);
29 }
30 int main()
31 {
32     box box1;
33     cout<<"the volume of box1 is   "<<box1.volume()<<endl;
34     box box2(10,30,25);   //建立对象   并且 赋初值
35     cout<<"the volume of box2 is   "<<box2.volume()<<endl;
36     return 0;
37 }
时间: 2024-11-08 22:12:26

构造函数的重载的相关文章

构造函数的定义和构造函数的重载

构造函数:处理对象的初始化,是一种特殊的成员函数,与其他函数不同,不需要用户来调用它,在建立对象时自动执行. 注意:(1)每建立一个对象,就调用一次构造函数: (2)构造函数没有返回值,因此也没有类型,作用只是对对象进行初始化: (3)构造函数不需要被用户调用,也不能被用户调用. 构造函数的重载:构造函数具有相同的名字,而参数的个数或参数类型不相同. 例1  编写一个基于对象的程序,在类中用带参数的构造函数对数据成员初始化,求长方柱的体积. 解:程序: #include<iostream> u

[javase学习笔记]-7.3 构造函数的重载

这一节我们来学习一下构造函数的重载. 说到重载,我们在函数那一章已经学习过了,为了更好的理解构造函数的重载,我们先要弄明白一个问题: 那就是什么时候定义构造函数呢? 在描述事物时,该事物已存在就具备一些内容,这些内容都定义在构造函数中. 我们来看例子: class Person { private String name; private int age; Person() { System.out.println("person run"); } public void speak(

C++ 拷贝构造函数和重载赋值操作符相互调用分析 [转]

结论: 从面相对象编程的角度考虑,拷贝构造函数调用重载赋值操作符,重载赋值操作符调用拷贝构造函数的写法都是没有意义的.应该避免. Don't try to implement one of the copying functions in terms of the other. Instead, put common functionality in a third function that both call. ——Effective C++ Third Edition By Scott M

.net初学之构造函数及重载

1.类是对象的具体实现,对象是类的抽象描述. 2.创建类的实例的时候调用构造函数 3.构造函数无返回值:类名和方法名相同:用于初始化对象: 4.方法名相同,参数列表不同的同一类下不同方法称为方法的重载. 构造函数: public class hanshu { public string Num1; public int Num2; //定义两个变量 public void hanshu(string _Num1,int _Num2) //构造函数 { this.Num1 = _Num1; //声

构造函数与重载

//--构造函数-------------------------------------------------------- #include <iostream.h> class Point { public: int x; int y; Point() //构造函数 { x=0; y=0; } Point(int a,int b) //多个构造函数(多个构造函数自动匹配,这就叫做“函数重载”) { x=a; y=b; } ~Point() //# 析构函数 # 释放构造函数占用的内存

构造函数,重载与重写的区别,静态成员和方法

构造函数  ..在实例化的时候执行的一个函数. 构造函数一定不能是静态的 构造函数名必须与类名一直 没有返回值 括号里可以有参数 构造函数的函数体就是这个类的初始默认值,实例化这个函数,就可以直接输出里面的函数体. 每一个类都有构造函数,只是被隐藏了而已. 重载  overload 方法名一样,参数类型不一样,在这种情况下,是允许有两种同样的方法的. 一个方法两种参数,就是两个重载 这样就是成功的重载,同样的方法名,两种不同类型的参数.(string a 和  string sa  是不可以的,

Java中的构造函数和重载

一.Java中的构造函数 构造函数是对象被创建时初始化对象的成员方法,它具有和它所在的类完全一样的名字.构造函数只能有入口参数,没有返回类型,因为一个类的构造方法的返回类就是类本身.构造函数定义后,创建对象时就会自动调用它,对新创建的对象分配内存空间和初始化.在 Java 中,构造函数也可以重载,当创建一个对象时, JVM 会自动根据当前对方法的调用形式在类的定义中匹配形式符合的构造方法,匹配成功后执行该构造方法. eg: public Class Dog { private int age:

javascript的构造函数的重载

[转自e良师益友网]有时候我们希望对象的初始化有多种方式.比如通过元素组成的数组来初始化一个Set对象,而不是通过传入构造函数的参数列表来初始化它. 重载overload 通过重载这个构造函数方法让它根据传入参数的不同,来执行不同的初始化方法. 这段代码所定义的Set()构造函数可以显式将一组元素作为参数列表传入,也可以传入元素组成的数组.但这个构造函数有多义性,如果集合的某个参数是一个 数组就将无法通过这个构造函数来创建这个集合了(为了做到这一点,需要首先创建一个空集合,然后显示调用add()

【2017-04-16】抽象类、接口、构造函数、重载、静态成员和方法

抽象类 关键字:abstract 什么是抽象类:不是实际存在的,抽象的 抽象类只能被继承,不能被实例化成对象 抽象方法一定在抽象类中,抽象类中不一定全是抽象方法,也有普通存在方法 如果要调用抽象类中的普通方法,那么需要子类继承之后实例化再调用 实际应用: public abstract class ren { public abstract string chifan() } 抽象方法没有函数体 在子类中实现: public override string chifan() { return "