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. 异常-try...catch的方式处理异常1

    package cn.itcast_02; /* * 我们自己如何处理异常呢? * A:try...catch...finally * B:throws 抛出 * * try...catch...fi ...

  2. 3 java 笔记

    1 垃圾回收机制能够很好地提高编程效率 2 垃圾回机制保护程序的完成性 3 面向对象的三种基本特征:继承,封装,多态 4 面向对象的方式:OOA(面向对象的分析),OOD(面向对象的设计)和OOP(面 ...

  3. python部署到服务器(1) 一一 搭建环境

    本机环境说明 linux下的CentOS 7, 自带python2.7.5, 使用 python --version 命令查看,因系统需要python2.7.5,因此我们并不卸载,另外安装python ...

  4. layDate面板出现红色花纹图案

    要使用layDate,有两种方法: 1. 要么在引用layui.js和layui.css,然后通过layui.use('laydate', callback) 加载模块后,调用方法使用. 2. 去la ...

  5. python 2.7.5 获取文本关键字符所在行

    #!/usr/bin/env python #-*- coding: UTF- -*- from __future__ import print_function import time,os,sys ...

  6. PXE+Kickstart实现批量化无人值守安装

    centos7下进行kickstart配置 配置kickstart时需要pxe芯片,为获取ip地址 1.先安装dhcpd服务器 yum install -y dhcpd 1-1.配置dhcp的配置文件 ...

  7. 第三方库-正则re

    Python正则表达式里的单行re.S和多行re.M模式 Python 的re模块内置函数几乎都有一个flags参数,以位运算的方式将多个标志位相加.其中有两个模式:单行(re.DOTALL, 或者r ...

  8. zencart设置默认货币三种方法

    zencart设置默认货币为USD 方法一:mysql UPDATE configuration SET configuration_value = 'USD' WHERE configuration ...

  9. 异步消息处理机制相关面试问题-intentservice面试问题详解

    IntentService是什么? IntentService是继承并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentService方法和启动传统的S ...

  10. Web的了解和servlet的初次见面

    web 相信大家都不陌生,平常我们浏览网页用的都是web服务.互联网起初的web就是非常简单的页面,但是随着客户需求越来越复杂,需要的功能越来越多,我们的服务器端需要处理的请求越来越多,需要区分不同的 ...