C++构造函数(Constructor)

 

在C++中,有一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不能调用),而是在创建对象时自动执行。这种特殊的成员函数就是构造函数(Constructor

 

#include<iostream>

usingnamespace std;

 

classStudent

{

private:

    char *m_name;

    int m_age;

    float m_score;

public:

    //声明构造函数

    Student(char *name, int age, float score);

    //声明普通成员函数

    void show();

};

 

//定义构造函数

Student::Student(char*name, int age, float score)

{m_name= name; m_age = age;  m_score = score;}

//定义普通成员函数

voidStudent::show(){

    cout<<m_name<<"的年龄是"<<m_age<<",成绩是"<<m_score<<endl;

}

 

intmain()

{

    //创建对象时向构造函数传参

    Student stu("水仙花",15, 92.5f);

    stu.show();

    //创建对象时向构造函数传参

    Student *pstu = new Student("丁香花",16, 96);

    pstu -> show();

 

    return 0;

}

 

i.     该例在 Student 类中定义了一个构造函数Student(char *, int, float),它的作用是给三个 private属性的成员变量赋值。要想调用该构造函数,就得在创建对象的同时传递实参,并且实参由( )包围,和普通的函数调用非常类似。

ii.     构造函数必须是public 属性的,否则创建对象时无法调用。当然,设置为 private、protected 属性也不会报错,但是没有意义。

iii.     构造函数没有返回值,因为没有变量来接收返回值,即使有也毫无用处,这意味着:

a)  不管是声明还是定义,函数名前面都不能出现返回值类型,即使是 void 也不允许;

b)  函数体中不能有return 语句。

 

猜你喜欢

转载自blog.csdn.net/erduoerdu/article/details/80044218
今日推荐