类是我们自己定义的数据类型(新类型) 设计类时要考虑的角度 站在设计和实现者的角度来考虑 站在使用者的角度来考虑 父类,子类 一个类就是用户自己定义的数据类型,把类想像成命名空间,包着一堆东西(成员函数,成员变量) 一个类的构成:成员变量,成员函数(有许多特殊成员函数,后续慢慢讲解) 访问类成员时,如果是类对象,我们就使用对象名.成员名来访问成员, public成员提供对外的接口,暴露给外界,提供外界调用, struct是成员默认为public的class, struct A {};class成员默认是私有的,class A{}; 对象是可以拷贝的,默认情况下,这种类对象的拷贝,是每个成员变量逐个拷贝 如果在Time类中我们要定义适当的”赋值运算符”,就能够控制对象的这种拷贝 -Time.cpp
第三章 类
第一节 成员函数,对象拷贝,私有成员
1. 综述
2. 类基础
如果是指向对象的指针,我们使用指针名->成员名来访问成员
private成员提供各种实现类功能的细节方法,但不暴露给使用者,外界无法使用这些成员
==> struct A{} 等价于 class A{public:}#include <iostream> using namespace std; class student{ public: int num; }; int main() { student someone;//定义类 someone.num =100; cout << someone.num << endl; student *pstu; pstu = &someone; pstu->num = 88; cout << pstu->num << endl; return 0; }
3. 成员函数
完整范例
// // Created by felaim on 2020/5/26. // #ifndef LESSION_PART_TWO_TIME_H #define LESSION_PART_TWO_TIME_H class Time { public: int Hour; int Minute; int Second; void initTime(int tmphour, int tmpmin, int tmpsec); }; #endif //LESSION_PART_TWO_TIME_H
// // Created by felaim on 2020/5/26. // #include "Time.h" // 成员函数initTime的实现 // ::叫做作用域运算符,表示initTime属于Time类 void Time::initTime(int tmphour, int tmpmin, int tmpsec) { //成员函数中可以直接使用成员变量名 // 哪个对象调用的成员函数,这些成员变量就属于对应的对象 Hour = tmphour; Minute = tmpmin; Second = tmpsec; }
#include <iostream> #include "Time.h" using namespace std; int main() { Time mytime; mytime.initTime(11, 14, 45); //mytime: 11:14:45 cout << "mytime: " << mytime.Hour << ":" << mytime.Minute << ":" << mytime.Second << endl; return 0; }
cmake_minimum_required(VERSION 3.14) project(lession_part_two) set(CMAKE_CXX_STANDARD 11) include_directories(./include/) add_executable(lession_part_two main.cpp ./source/Time.cpp)
4. 对象的拷贝
#include <iostream> #include "Time.h" using namespace std; int main() { Time myTime; myTime.initTime(11, 14, 45); //mytime: 11:14:45 cout << "myTime: " << myTime.Hour << ":" << myTime.Minute << ":" << myTime.Second << endl; // 对象拷贝,断点查看时内存地址不一样 Time myTime0 = myTime; Time myTime1{myTime}; Time myTime2(myTime); Time myTime3 = {myTime}; myTime3.Hour = 12; cout << "myTime: " << myTime.Hour << ":" << myTime.Minute << ":" << myTime.Second << endl; cout << "myTime3: " << myTime3.Hour << ":" << myTime3.Minute << ":" << myTime3.Second << endl; return 0; }
5. 私有成员
// // Created by felaim on 2020/5/26. // #ifndef LESSION_PART_TWO_TIME_H #define LESSION_PART_TWO_TIME_H class Time { private: // 私有成员变量不能在外部直接用成员变量名使用 // 可以自己的成员函数调用 int Millisecond;//毫秒 void initMillTime(int mls); public: int Hour; int Minute; int Second; void initTime(int tmphour, int tmpmin, int tmpsec); }; #endif //LESSION_PART_TWO_TIME_H
// // Created by felaim on 2020/5/26. // #include "Time.h" // 成员函数initTime的实现 // ::叫做作用域运算符,表示initTime属于Time类 void Time::initTime(int tmphour, int tmpmin, int tmpsec) { //成员函数中可以直接使用成员变量名 // 哪个对象调用的成员函数,这些成员变量就属于对应的对象 Hour = tmphour; Minute = tmpmin; Second = tmpsec; initMillTime(25); } void Time::initMillTime(int mls) { Millisecond = mls; //成员函数访问成员变量 }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算