初识c++的类

古城微笑少年丶 2022-07-18 05:28 346阅读 0赞

前言
c++所做的最重要的改进就是提供了类。类就体现了c++面向对象编程(OOP)的特性,类是一种将抽象转换为用户定义类型的c++工具,它将数据表示和操纵数据的方法组合成一个整洁的包。

类的组成部分
这里写图片描述

类中的访问权限的总结
这里写图片描述
如何定义和声明一个类

  1. #include<iostream>
  2. using namespace std;
  3. class Tdate //下面是对一个类的声明,声明就只是成员函数没有具体的实现
  4. {
  5. public:
  6. void Set(int, int, int); //声明一个类成员函数,它的属性为public
  7. void print();
  8. private:
  9. int y; //定义了三个私有的成员变量y,m,d;
  10. int m;
  11. int d;
  12. }; //一个类的结尾必须要有:“;”
  13. /*
  14. 下面是对类的对类成员函数进行实现
  15. */
  16. void Tdate::Set(int y, int m, int d)
  17. {
  18. /*
  19. 后面也将介绍一下this指针的使用和原理,这里就先用了,不用也可以直接如下替换:
  20. Tdate::y=y;
  21. Tdate::m=m;
  22. Tdate::d=d;
  23. 至于“::”这个操作符也马上就会给大家介绍它的的作用。它是可以在类外部访问类私有成员的一种方式
  24. */
  25. this->y = y;
  26. this->m = m;
  27. this->d = d;
  28. }
  29. void Tdate::print()
  30. {
  31. /*
  32. 这里是因为你在要实现这个函数,是要进入类的内部的,使用了“Tdate::“,所以这里可以直接访问类的私有成员
  33. Set函数不可以直接用y,m,d的原因是因为一个区域内出现了两个相同名字的变量,程序无法分辨,只有人为的去操作
  34. */
  35. cout << "Year=" << y << endl;
  36. cout << "Month=" << m << endl;
  37. cout << "Day=" << d << endl;
  38. }
  39. int main()
  40. {
  41. Tdate date;
  42. date.Set(2016, 9, 7);
  43. date.print();
  44. system("pause");
  45. return 0;
  46. }

“::”作用域区分符
“::”叫做作用域区分符,指明一个类属于哪个类或一个数据属于哪个类,因为它已经为我们指明我们需要访问的类,所以可以直接在其内部访问类的私有成员,“::”可以不跟类名,表示全局数据或全局函数。

this指针的用法
请参考我的下一篇博客(c++之指针详解)

一般类的定义和其成员函数的定义是分开的,我们把类的定义放在一个头文件中,类的实现放在cpp文件中,下面我给个例子。

  1. /*
  2. Tdate.h文件
  3. */
  4. class Tdate
  5. {
  6. public:
  7. void Set(int, int, int);
  8. void print();
  9. private:
  10. int y;
  11. int m;
  12. int d;
  13. };
  14. /*
  15. Tdate.cpp
  16. */
  17. #include <iostream>
  18. using namespace std;
  19. #include "Tdate.h"
  20. void Tdate::Set(int y, int m, int d)
  21. {
  22. this->y = y;
  23. this->m = m;
  24. this->d = d;
  25. }
  26. void Tdate::print()
  27. {
  28. cout << "Year=" << y << endl;
  29. cout << "Month=" << m << endl;
  30. cout << "Day=" << d << endl;
  31. }
  32. /*
  33. main1.cpp
  34. */
  35. #include <iostream>
  36. using namespace std;
  37. #include "Tdate.h"
  38. int main()
  39. {
  40. Tdate date;
  41. date.Set(2016, 9, 7);
  42. date.print();
  43. system("pause");
  44. return 0;
  45. }

上述格式就是进行大型项目开发应该使用的格式。

发表评论

表情:
评论列表 (有 0 条评论,346人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++ -- C++

    计算机的本质是“程序的机器”,计算机的一切操作都是由程序驱动的。程序和指令的思想是计算机系统中最基本的概念。 一、C语言与C++的区别 C语言是结构化和模块化的语

    相关 C++

    初步认识C++ 1979年,贝尔实验室的本贾尼.斯特劳斯特卢普(Bjarne Stroustrup)博士接受一项工作,尝试分析UNIX的内核,他设计了一个可以运行的预处理

    相关 C++

    C++ 初识 1.1 变量 作用:给一段指定的内存空间起名字,方便操作这段内存 在内存中存放的数据有一个十六进制的地址编号 可以通过地址编号来找到数据,但是这

    相关 C#

      刚刚接触c\,有很多知识点觉得很熟悉,又有很多名词从来没听过,整的满头雾水,所以先理清思路再继续学习。   首先c\是一门编程语言,它是面向对象的、运行于.net fro

    相关 c++

    前言 c++所做的最重要的改进就是提供了类。类就体现了c++面向对象编程([OOP][])的特性,类是一种将抽象转换为用户定义类型的c++工具,它将数据表示和操纵数据的方法

    相关 c++

      这几天一直在写网络编程,感觉有点枯燥,今天在看了半个小时的网络后,开始看c++。因为学过c的缘故,c++上手的时候感觉不怎么难,比较容易理解,前面几章看的比较快,在看到构造

    相关 C++与对象

    引入:在我们编程语言中,想必大家都应该听说过面向过程编程与面向对象编程,那么到底什么是面向过程编程什么是面向对象编程呢?对于这个问题我想大家都应该听我们的老师讲过一个生动而又形