C++基础知识:成员函数、对象拷贝、私有成员
2019-02-27 11:51:20来源:博客园 阅读 ()
一、综述
类是我们自己定义的数据类型(新类型)
设计类时要考虑的角度:
(1)站在设计和实现者的角度来考虑
(2)站在使用者的角度来考虑
(3)父类,子类
二、类基础
(1)一个类就是一个用户自己定义的数据类型,把类可以想象为一个命名空间,包着一堆东西(成员函数,成员变量)。
(2)一个类的构成:成员变量,成员函数(有许多特殊的成员函数)。
(3)我们访问类成员时,我们就用对象名.成员名来访问成员
如果是指向对象的指针,我们就用指针名->成员名来访问成员。
class student { int number; char name[100]; } student someone; // 定义类的对象 someone.number = 1000; student *someone1 = &someone; someone->number = 1005; cout << someone1->number << endl;
(4)public成员提供类的接口,暴露给外接,供外界调用;private成员提供各种实现类的细节方法,但不暴露给使用者,外界无法访问这些成员。
(5)struct是成员默认为public的class; struct A{….}
(5)class是成员默认为private(私有)class A{….}
三、成员函数
class Time { public: int Hour; // 小时 int Minute; // 分钟 int Second; // 秒钟 void initTime(int tmpHour, int tmpMinute ,int tmpSecond) { Hour = tmpHour; Minute = tmpMinute; Second = tmpSecond; } } int main() { Time MyTime; // 类对象 MyTime .initTime(MyTime,11,14,5); cout << MyTime.Hour << endl; cout << MyTime.Minute << endl; cout << MyTime.Second << endl; return 0; }
当做工程来写
//time.h #ifndef __MYTIME__ #define __MYTINE__ class Time { public: int Hour; // 小时 int Minute; // 分钟 int Second; // 秒钟 void initTime(int tmpHour, int tmpMinute ,int tmpSecond); }
#endif
//time.cpp #include “Tiem.h” // 成员函数的实现 // 其中::称为作用于运算符,表示initTime这个函数属于Time类 void Time::initTime(int tmpHour, int tmpMinute ,int tmpSecond) { Hour = tmpHour; // 成员函数中可以直接使用成员变量名 Minute = tmpMinute; Second = tmpSecond; }
入口函数文件
#include “Time.h” int main() { Time MyTime; // 类对象 MyTime .initTime(MyTime,11,14,5); cout << MyTime.Hour << endl; cout << MyTime.Minute << endl; cout << MyTime.Second << endl; return 0; }
四、对象的拷贝
对象本身是可以拷贝的
默认情况下,类对象的拷贝,是每个成员变量的逐个拷贝。
如果在类中定义适当的赋值运算符就能够控制对象的拷贝行为。
Time myTime; myTime.Hour = 12; myTime.Minute = 15; myTime.Second = 5; Time myTime2 = myTime; // 定义新对象并初始化 Time myTime3(myTime); Time myTime4 {myTime}; Time myTime5 = {myTime}; myTime5.Hour = 8;
五、私有成员
class Time { private: int Millsecond; // 毫秒 public: int Hour; // 小时 int Minute; // 分钟 int Second; // 秒钟 void initTime(int tmpHour, int tmpMinute ,int tmpSecond) { Hour = tmpHour; Minute = tmpMinute; Second = tmpSecond; } void initMillTime(int mls) { Millsecond = mls; // 成员函数可以访问成员变量,不管成员是否私有 } } Time myTime; //myTime. Millsecond = 1000; // 出错,无法访问 myTime.initMillTime(1000); // 私有成员变量的值可以通过公有的成员变量来获取与设置
原文链接:https://www.cnblogs.com/hs-pingfan/p/10441276.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash