类的成员简介

在C++中,可以通过声明一个类来穿件一种新的类型。类将一组变量(他们的类型通常不同)和一组相关的函数组合在一起。类可以有各种类型的变量组成,还可以包含其他类对象。成员变量称为数据成员它们是类中变量。

成员变量也叫数据成员,他们是类中的变量。成员变量是类的组成部分 。类还可以包含函数,它们被称为成员函数或者方法。成员函数和成员变量一样,是类的重要组成部分,它们决定了类的功能。类的成员函数通常操作成员变量。

下面就来看代码吧

/*
*class.cpp
*Date : 2013-9-20
*Author: sjin
*Mail:413977243@qq.com
*/
#include <iostream>
using namespace std; /*声明一个cat类
* public private 修饰类的数据成员或方法成员
* private:只能在类的方法中访问
* public:可以通过类的任何对象进行访问
* 默认情况下所有类型的成员都是私有的
* 构造函数:constructor 创建并初始化类成员
* 析构函数:destructor 对象被销毁后完成清理工作并释放分配的内存单元
* 注意:一定要使用构造函数来初始化对象,添加构造函数后,一定要添加一个析构函数
* 不要让构造函数和析构函数有返回值,不要让析构函数有参数
*/
class Cat {
private:
int itsAge; //数据成员
public:
Cat(int age); //构造函数
~Cat();//析构函数
int GetAge() const; //方法成员const 表明类成员不能被修改
void SetAge(int age);
void Meow();
}; /*构造函数*/
Cat::Cat(int age)
{
itsAge = age;
} Cat::~Cat()
{
cout << "something will cout" << endl;
} /*析构函数*/ /*获得猫的年龄*/
int Cat::GetAge() const
{
return itsAge;
} /*设置类的名字*/
void Cat::SetAge(int age)
{
itsAge = age;
} void Cat::Meow()
{
cout << "cat speak miao miao ...." << endl;
} int main()
{
Cat Frisky(10); //定义一个cat类
cout << "Frisky.itsAge :" << Frisky.GetAge() << endl;
Frisky.SetAge(5);
cout << "SetAge(5) Frisky.itsAge :" << Frisky.GetAge() << endl;
Frisky.Meow(); return 0;
}

通过上面的代码我们可以学习到:

声明一个cat类
* public private 修饰类的数据成员或方法成员
* private:只能在类的方法中访问
* public:可以通过类的任何对象进行访问
* 默认情况下所有类型的成员都是私有的
* 构造函数:constructor 创建并初始化类成员
* 析构函数:destructor 对象被销毁后完成清理工作并释放分配的内存单元
* 注意:一定要使用构造函数来初始化对象,添加构造函数后,一定要添加一个析构函数
* 不要让构造函数和析构函数有返回值,不要让析构函数有参数

内联实现

就像可以请求编译器将常规函数作为内联一个,也可以将类的方法作为内联,为此只需要在返回值类型前面加个关键字inline。比如下面:

inline int Cat::GetAge() const
{
return itsAge;
}

也可以将函数的定义放到声明中,函数将自动成为内联。如下:

class Cat {
private:
int itsAge; //数据成员
public:
int GetAge() const{return itsAge;} //inline
}

也可以这么写:

class Cat {
private:
int itsAge; //数据成员
public:
int GetAge() const
{
return itsAge;
} //inline。注意这里没有分号
}

走进C++程序世界-------类的定义和使用(数据成员和方法成员,析构函数,构造函数,内联实现)的更多相关文章

  1. 走进C++程序世界-----继承和派生(2)

    覆盖基类的函数 覆盖基类函数顾名思义就是在派生类中对基类的函数进行的重新定义.这里将会讲到下面的2个知识点: 1.隐藏基类的方法 2.调用基类的方法(隐式和显示调用基类的方法) /* *derive2 ...

  2. QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...

  3. 走进C++程序世界------异常处理

    一. 概述 C++自身有着很强的纠错能力,发展到现在,已经建立了比較完好的异常处理机制. C++的异常情况无非两种,一种是语法错误.即程序中出现了错误的语句,函数.结构和类,致使编译程序无法进行.还有 ...

  4. 走进C++程序世界------继承和派生

    继承和派生 继承是面向对象编程语言的最重要方面之一,正确的使用继承可编写出设计良好,容易于维护和扩展的应用程序.下面是在其他博客中的总结: ****************************** ...

  5. 走进C++程序世界-----函数相关(全局变量)

    全局变量 在函数外面定义的变量的作用域为全局,在程序的任何函数中都可用.与全局变量同名的局部变量不会修改全局变量的值,但会隐藏它.如果函数中有一个与全局变量同 名的局部变量时,则在函数中使用该名称时, ...

  6. 走进C++程序世界------IO标准库介绍

    流概述    流是C++标准的组成部分,流的主要目标是,将从磁盘读取文件或将输入写入控制台屏幕的问题封装起来,创建流后程序猿就能够使用它.流将负责处理全部的细节. IO类库 在C++输入、输出操作是通 ...

  7. 走进C++程序世界-----operator new delete 重载

     在C++ 的世界里,new 和delete 是keyword.而在C的世界里相相应的malloc和free是函数,关键C++的new和delete分析,详见前面的章节.这里就不在过多的介绍了.链接. ...

  8. vue.js--基础事件定义,获取数据,执行方法传值

    <template> <div id="app"> <h1>{{ msg }}</h1> <br> <button ...

  9. C++程序设计基础(4)宏定义和内联

    1.知识点 1.1宏定义 (1)不带参数的宏定义 #define ERROR_MESSAGE -100 #define SECONDS_PER_DAY 60*60*60 (2)带参数宏定义,这种形式称 ...

随机推荐

  1. Android SDK下载和更新失败的解决方法!!!

    Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml. 据说dl-ssl.google.c ...

  2. gcc编译时头文件库文件搜索顺序(转)

    原文: http://blog.csdn.net/silentfly1987/article/details/6119195

  3. 上海游侠电动汽车团队招募。iOS,Android,产品经理以及 SEVER 端工程师 - V2EX

    上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师 - V2EX 上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师

  4. 共享IP云主机(VPS)玩转wdcp

    目前国内有不少性能还不错的共享IP VPS,但因为没有独立IP,所以环境配置起来会比较麻烦. 因为本人自己现在用的就是共享IP的vps,所以把一些配置方法分享一下,供大家参考. 首先是系统的选择,根据 ...

  5. nexus5 root教程

    转载自: http://www.inexus.co/article-1280-1.html http://www.pc6.com/edu/71016.html https://download.cha ...

  6. POJ burnside&&polya整理练习

    POJ 2409 Let it Bead 这题就是polya公式的直接套用,唯一麻烦的是置换群的种类数,由于可以翻转,所以除了要加上pow(c,gcd(s,i))这些平面旋转的置换群,还要加上翻转的. ...

  7. 学习设计模式--观察者模式(C++)

    1. 说说简单的函数回调 首先说说一种简单的函数回调机制(一种通过获取对象的指针来进行函数的调用方法)以下是代码演示--- 这是观察者(被回调)部分: class Observer { public: ...

  8. passwd的使用

    名称:passwd 使用权限:所有使用者 使用方式:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username] 说明:用来更改使用者的密码 参数: -k  keep ...

  9. iOS 点击cell下拉

    iOS  点击cell下拉 代码如下: #import "ViewController.h" @interface ViewController ()<UITableView ...

  10. 【转】C++:MessageBox的常见用法

    一    函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口 ...