1:在创建对象时,程序自动调用构造函数。同一个类中可以有多个构造函数,通过这样的形式创建一个CPerson对象,例如:

CPerson p1(0,"jack",22,7000);

CPerson p2=Cperson(1,"tony",25,8000);

CPerson p;

2:利用构造函数初始化成员变量的代码如下:

(1)person.h中

#include <string>//本题目的目的是利用构造函数初始化成员变量
using std::string;
class CPerson
{
public:
//构造函数
CPerson(int index,string name,short age,double salary);//构造函数是对数据成员来说的,所以参数和下面的数据成员一样
CPerson();
//数据成员
int m_iIndex;
string m_sName;
short m_shAge;
double m_dSalary;
//成员函数
short getAge();
int setAge(short sAge);
int getIndex() ;
int setIndex(int iIndex);
string getName() ;
int setName(string sName);
double getSalary() ;
int setSalary(double dSalary);
};

(2)person.cpp中

#include "stdafx.h"
#include <iostream>
#include "person.h"
//类成员函数的实现部分
short CPerson::getAge()
{
return m_shAge;
}
int CPerson::setAge(short sAge)
{
m_shAge=sAge;
return ; //执行成功返回0
}
int CPerson::getIndex()
{
return m_iIndex;
}
int CPerson::setIndex(int iIndex)
{
m_iIndex=iIndex;
return ; //执行成功返回0
}
string CPerson::getName()
{
return m_sName;
}
int CPerson::setName(string sName)
{
m_sName = sName;
return ; //执行成功返回0
}
double CPerson::getSalary()
{
return m_dSalary;
}
int CPerson::setSalary(double dSalary)
{
m_dSalary=dSalary;
return ; //执行成功返回0
}
CPerson::CPerson(int index,string name,short age,double salary)
{
m_iIndex = index;
m_sName = name;
m_shAge = age;
m_dSalary = salary;
}
CPerson::CPerson()
{ }

(3)main.cpp中

// 7.2.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
#include "Person.h"
using std::cout;
using std::endl;
void main()
{
string str("tony");//注意string的用法
CPerson p1;
CPerson p2 = CPerson(, str,,);
cout<<"p1的信息:"<<endl;
cout << "m_shAge is:" << p1.getAge() << endl;
cout << "m_iIndex is:" << p1.getIndex() << endl;
cout << "m_cName is:" << p1.getName() << endl;
cout << "m_dSalary is:" << p1.getSalary() << endl;
cout<<"p2的信息:"<<endl;
cout << "m_shAge is:" << p2.getAge() << endl;
cout << "m_iIndex is:" << p2.getIndex() << endl;
cout << "m_cName is:" << p2.getName() << endl;
cout << "m_dSalary is:" << p2.getSalary() << endl;
}

运行结果:

C++入门经典-例7.2-利用构造函数初始化成员变量的更多相关文章

  1. C++构造函数及成员变量

    class MyClass { public: int m_age; float m_hight; MyClass() { } ~MyClass() { } MyClass(int age, floa ...

  2. 《挑战30天C++入门极限》C++中利用构造函数与无名对象简化运算符重载函数

        C++中利用构造函数与无名对象简化运算符重载函数 在完整描述思想之前,我们先看一下如下的例子,这个例子中的加运算符重载是以非成员函数的方式出现的: //程序作者:管宁  //站点:www.cn ...

  3. C++入门经典-例8.1-类的继承

    1:继承是面向对象的主要特征(此外还有封装和多态)之一,它使得一个类可以从现有类中派生,而不必重新定义一个新类.继承的实质就是用已有的数据类型创建新的数据类型,并保留已有数据类型的特点,以旧类为基础创 ...

  4. C++入门经典-例7.9-对象数组,批量化生产

    1:在数组内容中我们了解到,数组是通过指针分配到的一段额定大小的内容.同样,数组也可以包含对象.声明对象数组的形式如下: box boxArray[5]; box boxArray2[2]={box( ...

  5. C++入门经典-例7.3-析构函数的调用

    1:析构函数的名称标识符就是在类名标识符前面加“~”.例如: ~CPerson(); 2:实例代码: (1)title.h #include <string>//title是一个类,此为构 ...

  6. C++构造函数和析构函数,以及构造函数特殊成员变量和函数的初始化

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  7. C++中构造函数初始化成员列表总结

    1.只能在构造函数初始化列表初始化的成员变量的类型? a.const成员变量 b.引用类型的成员变量 c.static不能在初始化列表中进行初始化 d.类成员变量中有自定义类型的变量最好在初始化列表中 ...

  8. C++入门经典-例8.7-多态,利用虚函数实现动态绑定

    1:多态性是面向对象程序设计的一个重要特征,利用多态性可以设计和实现一个易于扩展的系统.在C++语言中,多态是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数,发出同样 ...

  9. C++入门经典-例8.3-子类显示调用父类构造函数

    1:当父类含有带参数的构造函数时,创建子类的时候会调用它吗?答案是通过显示方式才可以调用. 无论创建子类对象时调用的是那种子类构造函数,都会自动调用父类默认构造函数.若想使用父类带参数的构造函数,则需 ...

随机推荐

  1. Fox新闻报道,帮助北朝鲜使用加密货币专家被捕

    根据司法部的刑事诉讼,一名美国加密货币专家周四在洛杉矶被捕,原因是涉嫌帮助朝鲜使用加密货币逃避美国的制裁.网民都说敢帮助敌人,就应该关起来.  ​​​

  2. MyBatis-plus 新增实例,主键ID从很大的数字开始

    mybatis-plus是mybatis增强版,用mybatis-plus可以省去很多DAO层代码和数据库操作语句的编写.但是需要我们配置好条件. 情景: 向数据库新增一条实例,我们要调用 inser ...

  3. 关于登陆界面,页面没有刷新完毕,点击登陆跳转到一个接口的bug

    现象 输入完密码点击登陆就跳转到了如下的页面 分析原因: 第一:查看html页面   页面中的html  登陆用的是form表单  表单中还写了属性  action   即允许跳到某一个接口,这里是没 ...

  4. HBuilderX 打包

    新建 - 云打包 (密钥 密码看不到 - 回车)    (  ) BlueStacks蓝叠 模拟器看效果

  5. qt tableview中如何添加右键菜单且不可编辑单元格

    QTableView是一个比较实用的类,下面教给大家如何在QTableView中添加右键菜单. #include <QMenu>#include <QAction> QTabl ...

  6. Delphi 配置BDE数据源

    樊伟胜

  7. Manjaro18+kde 更换壁纸重启失效

    更换壁纸 ​ 在kde的桌面右键->配置桌面 壁纸里更换壁纸,我不能直接添加图像并应用.我的系统在这样操作后重启就会发现一切都被重置了.刚刚添加的图片也不见了. ​ 于是,我就模范原本存在壁纸文 ...

  8. 【2017-03-28】JS基础、windows对象、history对象、location对象

    一.JS基础 JS - javaScript 1.js功能: 1).进行数据的运算.2).控制浏览器的一些功能.3).控制元素(属性.内容.样式) js引用位置: 可以放在html页的任意位置. 推荐 ...

  9. VMware提示此主机支持Intel VT-x,但Intel VT-x处于禁用状态怎么解决

    本文链接:https://blog.csdn.net/weixin_40816738/article/details/90146770 ThinkPad笔记本1.开机按F1或Fn+F1进入BIOS,切 ...

  10. 部署dashboard

    1.获取k8s版本: 2.访问dashboard的github:https://github.com/kubernetes/dashboard/releases,然后找到对应的版本 3.然后将yaml ...