【C++】C++类和对象

简介: 【C++】C++类和对象

最近在公司弄游戏开发,C++基础也不是特别好,所以就打算继续开始学习C++。


既然从头学习C++,就打算写一个系列教程。C++学习之路。

我是在边学习C++,边学习cocos2dx 3.X,白天时间不是很多,

先把C++系列写完再写coco2dx的教程。

希望对大家有帮助。

(可能基础知识不是很详细,对没有其他语言基础的人来说不是很友好,请见谅)


每个实体都可以看成一个对象。在C++中,对象的类型被称为类。

类代表了某一批对象的共性和特征。


类是对象的抽象,而对象是类的具体实现。


在C++中要使用一个类,首先要定义一个类。


定义类


定义类和声明结构体的结构是相似的。


定义结构体



struct Student{
    char name[128];
    int age;
    char add[128];
};

类的定义格式


class 类名{
    private:
        成员数据;
        成员函数;
    public:
        成员数据;
        成员函数;
    protected:
        成员数据;
        成员函数;
};


private,public,protected这3个限定符就不介绍了

建议把:

public放前面

private放最后


别忘了最后的分号哦。

struct默认是public

class默认是private


一个简单的例子


// test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
using namespace std;
class Student
{
public:
    void print()
    {
        cout <<  age  << endl;
    }
    int getAge();
private:
    char name[128] ;
    int age = 20;
    char addr[128] ;
};
inline int Student::getAge(){
    return age;
}
int _tmain(int argc, _TCHAR* argv[])
{
    Student stu;
    stu.print();
    stu.getAge();
    getchar();
    return 0;
}


类和对象的使用

对象成员的引用

程序中访问对象成员有以下三种方法:

1、通过对象名和成员访问运算符”.”来访问

2、通过指向对象的指针来访问

3、通过引用来访问

    Student stu;
    //通过对象名和成员访问运算符"."来访问  
    stu.print();
    stu.getAge();
    //通过指向对象的指针来访问  
    Student *p = &stu;
    p->print();
    p->getAge();
    //通过引用来访问  
    Student &s = stu;//表明s是stu的别名
    s.print();
    s.getAge();


类声明和成员函数实现的分离


类的定义和成员函数的实现一般不放在一起,而是放在不同的文件中。


一般来说,在大型项目中,将类的声明放在单独的头文件中,一般以类名命名。

成员函数的实现放在该类对应的cpp文件中。

这样就将类的声明和实现进行了分离.


如果需要使用某个对象,直接引用那个对象声明的头文件即可,而不需要再重复声明了!


这样工程的结构就清晰很多了。


这章很简单,没多少要写的,你有语言基础的话,这章用个5分钟就可以过了~~

这里我写了2个例子


源代码下载地址:

GITHUB源码下载地址: 点我进行下载

目录
相关文章
|
15天前
|
编译器 C++
C++ 类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。
60 30
|
4天前
|
并行计算 Unix Linux
超级好用的C++实用库之线程基类
超级好用的C++实用库之线程基类
12 4
|
4天前
|
C++ Windows
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
|
4天前
|
C++
2合1,整合C++类(Class)代码转换为MASM32代码的平台
2合1,整合C++类(Class)代码转换为MASM32代码的平台
|
4天前
|
存储 运维 监控
超级好用的C++实用库之日志类
超级好用的C++实用库之日志类
11 0
|
1月前
|
C++
C++(十一)对象数组
本文介绍了C++中对象数组的使用方法及其注意事项。通过示例展示了如何定义和初始化对象数组,并解释了栈对象数组与堆对象数组在初始化时的区别。重点强调了构造器设计时应考虑无参构造器的重要性,以及在需要进一步初始化的情况下采用二段式初始化策略的应用场景。
|
1月前
|
存储 编译器 C++
C ++初阶:类和对象(中)
C ++初阶:类和对象(中)
|
1月前
|
C++
C++(十六)类之间转化
在C++中,类之间的转换可以通过转换构造函数和操作符函数实现。转换构造函数是一种单参数构造函数,用于将其他类型转换为本类类型。为了防止不必要的隐式转换,可以使用`explicit`关键字来禁止这种自动转换。此外,还可以通过定义`operator`函数来进行类型转换,该函数无参数且无返回值。下面展示了如何使用这两种方式实现自定义类型的相互转换,并通过示例代码说明了`explicit`关键字的作用。
|
1月前
|
存储 设计模式 编译器
C++(十三) 类的扩展
本文详细介绍了C++中类的各种扩展特性,包括类成员存储、`sizeof`操作符的应用、类成员函数的存储方式及其背后的`this`指针机制。此外,还探讨了`const`修饰符在成员变量和函数中的作用,以及如何通过`static`关键字实现类中的资源共享。文章还介绍了单例模式的设计思路,并讨论了指向类成员(数据成员和函数成员)的指针的使用方法。最后,还讲解了指向静态成员的指针的相关概念和应用示例。通过这些内容,帮助读者更好地理解和掌握C++面向对象编程的核心概念和技术细节。
|
1月前
|
存储 C++
C++(五)String 字符串类
本文档详细介绍了C++中的`string`类,包括定义、初始化、字符串比较及数值与字符串之间的转换方法。`string`类简化了字符串处理,提供了丰富的功能如字符串查找、比较、拼接和替换等。文档通过示例代码展示了如何使用这些功能,并介绍了如何将数值转换为字符串以及反之亦然的方法。此外,还展示了如何使用`string`数组存储和遍历多个字符串。