C++类基本语法实例分析

 更新时间:2014年08月19日 10:18:12   投稿:shichen2014  
这篇文章主要介绍了C++类基本语法实例分析,非常适合初学者学习借鉴,需要的朋友可以参考下

类是C++程序设计非常重要的概念,本文即以实例形式说明了类的常见用法。具体如下:

本测试代码主要包括以下内容:

(1)如何使用构造函数;
(2)默认构造函数;
(3)对象间赋值;
(4)const使用语法;
(5)定义类常量: 一种方法是用enum,另一种方法是使用static。

实例代码如下:

#include <iostream>

using namespace std;

enum sexType
{
  MAN,
  WOMAN
};

class Human
{
  //the default is private
  private:
    string name;
    sexType sex;
    int age;

    //(5) 定义类常量: 一种方法是用enum,另一种方法是使用static
    enum{LEN=1};
    static const int LEN2 = 3;

  public:
    //如果类定义中没有提供任何构造函数,则编译器提供默认构造函数。但,如果类中定义了构造函数,那么编写者必须同时提供一个默认构造函数。
    //有两种方法提供默认构造函数:
    //(1) 定义一个没有参数的构造函数:Human();
    //(2) 为非默认构造函数的参数提供默认值: Human(string m_name="no name", int m_age=0, sexType m_sex=MAN);
    //两种定义方式只能二选一
    Human();
    Human(string m_name, int m_age, sexType m_sex);
    Human(int m_age);
    ~Human();

    //定义在类声明中的方法为内联方法。也可以使用inline关键字将函数定义在类声明外部。
    void show() const //const加在函数名后面表示该函数不会修改该类的数据成员。
    {
      cout<<"This is "<<name<<", sex: "<<sex<<", "<<age<<" Years old."<<endl;
    }
};

Human::Human()
{
  cout<<"default construct function"<<endl;
}

Human::Human(string m_name, int m_age, sexType m_sex)
{
  cout<<"construct function: "<<m_name<<endl;
  name = m_name;
  age = m_age;
  sex = m_sex;
}

Human::Human(int m_age)
{
  age = m_age;
}

Human::~Human()
{
  cout<<"destroy function: "<<name<<endl;
}

int main()
{
  cout << "This is test code of C++ class: "<< endl;
  {
    //(1) use of construct function
    Human jack = Human("Jack", 30, MAN); //显示调用
    Human jerry("Jerry", 26, MAN);    //隐式调用
    Human *pTom = new Human("Tom", 10, MAN); //New调用
    //当构造函数只有一个参数时,可以直接用赋值语句赋值。只有一个参数的构造函数将会被自动调用
    Human marry = 11; //赋值调用

    //(2) defaults construct function
    Human Lucy;

    //(3) 赋值对象
    Human James;
    James = Human("James", 28, MAN); //创建一个临时对象James,copy一份儿该对象赋值给James变量。紧接着该临时对象会被销毁。

    //(4) const
    const Human Thomas("Thomas", 29, MAN);
    Thomas.show(); //The show method must define with 'const'
  }
  return 0;
}

程序运行结果为:

相关文章

  • C/C++调用Fortran的DLL的操作过程

    C/C++调用Fortran的DLL的操作过程

    这篇文章主要介绍了C/C++调用Fortran的DLL,本文以一个简单的加法器为例,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • C语言实现个人财务管理软件

    C语言实现个人财务管理软件

    这篇文章主要为大家详细介绍了C语言实现个人财务管理软件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • VC++实现View内容保存为图片的方法

    VC++实现View内容保存为图片的方法

    这篇文章主要介绍了VC++实现View内容保存为图片的方法,涉及VC++中Bitmap类的save方法相关使用技巧,需要的朋友可以参考下
    2016-08-08
  • C语言逆向分析语法超详细分析

    C语言逆向分析语法超详细分析

    这篇文章主要介绍了C语言逆向分析语法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-11-11
  • C++面试基础之static关键字详解

    C++面试基础之static关键字详解

    这篇文章主要给大家介绍了关于C++面试基础之static关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • C语言 function recursion函数递归详解

    C语言 function recursion函数递归详解

    递归指的是在函数的定义中使用函数自身的方法,举个例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,循环下去
    2021-10-10
  • C语言结构体使用之链表

    C语言结构体使用之链表

    这篇文章主要介绍了C语言结构体使用之链表,下面文章主要围绕结构体的概念和用法、结构体数组和结构体指针、包含结构体的结构体、结构体搭建链表方法、结构体及链表在产品应用场景等多个主题展开链表的相关资料,需要的小伙伴可以参考一下
    2022-03-03
  • 深入解析C++的循环链表与双向链表设计的API实现

    深入解析C++的循环链表与双向链表设计的API实现

    这篇文章主要介绍了C++的循环链表与双向链表设计的API实现,文中的示例对于链表结点的操作起到了很好的说明作用,需要的朋友可以参考下
    2016-03-03
  • C语言 扫雷程序的实现

    C语言 扫雷程序的实现

    这篇文章主要介绍了C语言 扫雷程序的实现的相关资料,需要的朋友可以参考下
    2017-03-03
  • C++实现插入排序对整数数组排序

    C++实现插入排序对整数数组排序

    这篇文章主要为大家详细介绍了C++实现插入排序对整数数组排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论