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. A Pythonic Card Deck: __len__ & __getitem__ & for 循环的嵌套

    1. 列表生成式的嵌套 for 循环: 示例如下: li1 = range(1,6) li2 = list("ABC") # list("ABC") 的结果为 ...

  2. linux mint 安装xshell

    之前在Windows上进行开发的时候,SSH重度依赖SecureCRT或者XShell工具,现在把办公环境迁移到Linux后,每次连接都需要输入密码,尤其是需要跳板机的时候,需要逐级输入,十分麻烦.所 ...

  3. 解决npm安装node-sass太慢及编译错误问题

    环境: win7 node v8.11.1 npm v5.6.0 背景: 最近vue项目使用sass,所以需要sass-loader,sass-loader依赖node-sass,还需安装node-s ...

  4. 操作MongoDB好用的图形化工具,Robomongo -> 下载 -> 安装

    一 下载 点击下载 -> https://robomongo.org/download 二 安装 直接下一步就行了 -> 择安装位置之后 -> 确认安装

  5. Delphi ActiveX的使用

    樊伟胜

  6. linux网络协议栈(四)链路层 vlan处理

    转:http://blog.csdn.net/u010246947/article/details/18224517 4.6.VLAN处理: 4.6.1.vlan原理 对于带vlan的以太网报文,其以 ...

  7. 四、指定Nginx启动用户

    一.nginx指定启动用户 1.参考宝塔的配置 解释:(linux权限管理) 指定用www用户启动nginx,如果你用root启动nginx,万一nginx有漏洞,被提权了,你服务器就GG了 所以指定 ...

  8. Redis07-Redis单节点容量问题,twemproxy,predixy的使用

    Redis单节点容量问题 一.单节点容量问题 我们在实际场景中,往往遇上一个单节点容量问题. 1.进行业务拆分,数据分类 2.到了数据不能拆分的时候,可以进行数据分片 进行哈希取模(影响分布式下的扩展 ...

  9. 复杂sql优化步骤与技巧

    数据管理型系统,由于用户的要求或者系统设计要求,会出现大量表进行join,还要进行大量统计性数据查询展示,甚至数据权限控制等操作.最后会导致sql异常复杂,随着数据量增加,或者只是应用到生产环境(正式 ...

  10. 23_2spring的常用注解

    1.基于注解的IOC配置 1.1导入jar包 <?xml version="1.0" encoding="UTF-8"?> <project ...