当前位置: 首页 > news >正文

购物网站项目介绍沈阳网站优化建设

购物网站项目介绍,沈阳网站优化建设,2008 iis 添加网站,营销策划精准营销类和对象#xff08;1#xff09; 一、类的相关内容1.访问限定符2.class关键字与struct关键字的区别3.类域 二、this指针三、成员函数存放在哪里#xff1f;1. 函数的存放位置2. 练习题 一、类的相关内容 1.访问限定符 #xff08;1#xff09;C⼀种实现封装的⽅式… 类和对象1 一、类的相关内容1.访问限定符2.class关键字与struct关键字的区别3.类域 二、this指针三、成员函数存放在哪里1. 函数的存放位置2. 练习题 一、类的相关内容 1.访问限定符 1C⼀种实现封装的⽅式⽤类将对象的属性与⽅法结合在⼀块让对象更加完善通过访问权限选择性的将其接⼝提供给外部的⽤⼾使⽤。 2public修饰的成员在类外可以直接被访问protected和private修饰的成员在类外不能直接被访 问protected和private是⼀样的以后继承章节才能体现出他们的区别。 3访问权限作⽤域从该访问限定符出现的位置开始直到下⼀个访问限定符出现时为⽌如果后⾯没有访问限定符作⽤域就到 }即类结束。 4class定义成员没有被访问限定符修饰时默认为privatestruct默认为public。 5⼀般成员变量都会被限制为private/protected需要给别⼈使⽤的成员函数会放为public。 2.class关键字与struct关键字的区别 1class为定义类的关键字后面跟类的名字{}中为类的主体注意类定义结束时后⾯分号不能省 略。类体中内容称为类的成员类中的变量称为类的属性或成员变量; 类中的函数称为类的⽅法或 者成员函数。 2C中struct也可以定义类C兼容C中struct的⽤法同时struct升级成了类明显的变化是 struct中可以定义函数。 #includeiostream using namespace std; // C升级struct升级成了类 // 1、类⾥⾯可以定义函数 // 2、struct名称就可以代表类型 // C兼容C中struct的⽤法//这是c语言结构体的定义ListNodeC不能代表类型要加上struct关键字除非typedef typedef struct ListNodeC {struct ListNodeC* next;int val; }LTNode;// 不再需要typedefListNodeCPP就可以代表类型 struct ListNodeCPP {void Init(int x){next nullptr;val x;}ListNodeCPP* next;int val; }; int main() {return 0; } 3.类域 1类定义了⼀个新的作⽤域类的所有成员都在类的作⽤域中在类体外定义成员时需要使⽤ :: 作⽤域操作符指明成员属于哪个类域。 2类域影响的是编译的查找规则下⾯程序中Init如果不指定类域Stack那么编译器就把Init当成全 局函数那么编译时找不到array等成员的声明/定义在哪⾥就会报错。指定类域Stack就是知 道Init是成员函数当前域找不到的array等成员就会到类域中去查找。 #includeiostream using namespace std; class Stack { public: // 成员函数void Init(int n 4); private: // 成员变量int* array;size_t capacity;size_t top; }; // 声明和定义分离需要指定类域 void Stack::Init(int n) //缺省值只能在声明定义 {array (int*)malloc(sizeof(int) * n);if (nullptr array){perror(malloc申请空间失败);return;}capacity n;top 0; } int main() {Stack st;st.Init();return 0; }二、this指针 1Date类中有 Init 与 Print 两个成员函数函数体中没有关于不同对象的区分而且成员函数并不属于某一个对象同类的所有对象共享一份成员函数。那当d1调⽤Init和Print函数时该函数是如何知道应该访问的是d1对象还是d2对象呢那么这⾥就要看到C给了⼀个隐含的this指针解决这⾥的问题。 2编译器编译后类的成员函数默认都会在形参第⼀个位置增加⼀个当前类类型的指针叫做this 指针。⽐如Date类的Init的真实原型为 void Init(Date* const this, int year,int month, int day)。 3类的成员函数中访问成员变量本质都是通过this指针访问的如Init函数中给_year赋值 this-_year year。 4C规定不能在实参和形参的位置显⽰的写this指针(编译时编译器会处理)但是可以在函数体内显⽰使⽤this指针。 #includeiostream using namespace std; class Date { public: // void Init(Date* const this, int year, int month, int day) void Init(int year, int month, int day) {//注意this指针只能指向当前对象 // 编译报错error C2106: “”: 左操作数必须为左值 // this nullptr;_year year;this-_month month;this-_day day; } void Print() {cout _year / _month / _day endl; } private:// 这⾥只是声明没有开空间int _year;int _month;int _day; }; int main() { // Date类实例化出对象d1和d2Date d1;Date d2; // d1.Init(d1, 2024, 3, 31);d1.Init(2024, 3, 31);d1.Print();d2.Init(2024, 7, 5);d2.Print();return 0; }三、成员函数存放在哪里 1. 函数的存放位置 代码段存储 无论是全局函数、静态成员函数、const成员函数还是普通成员函数在编译后都会被放置在代码段中。这是因为函数代码是共享资源不需要为每个对象实例都复制一份更不会直接存储在对象的内存布局中。对象不存储函数代码 当我们创建一个类的对象时对象本身只包含其数据成员和可能的虚函数表指针如果类包含虚函数。成员函数代码并不存储在对象中。this指针的作用 当成员函数被调用时编译器会自动传递一个指向调用对象的指针即this指针。这个指针使得成员函数能够访问和修改对象的数据成员。this指针并不是成员函数的存储位置而是函数访问对象数据成员的桥梁。虚函数和虚函数表 如果类包含虚函数编译器会为每个包含虚函数的类生成一个虚函数表vtable。虚函数表包含了指向虚函数实现的指针。对象实例中包含一个指向其所属类的虚函数表的指针vptr。当通过基类指针或引用调用虚函数时会根据虚函数表找到正确的函数实现进行调用。详情看多态一节。 例如 汇编角度 2. 练习题 #includeiostream using namespace std; class A { public:void Print(){cout A::Print() endl;} private:int _a; }; int main() {A* p nullptr;p-Print();return 0; }
http://www.w-s-a.com/news/353503/

相关文章:

  • 淘宝建设网站的理由企业官网建设哪家好
  • 青岛网站推wordpress主题切换
  • 天元建设集团有限公司资质郑州网站seo推广
  • 免费网站后台管理系统模板下载百度网盘app下载安装
  • 开封网站建设培训郑州高端网站建设哪家好
  • 东莞哪家做网站很有名的公司即墨专业医院网站制作公司
  • 做面食网站china cd wordpress
  • 门户网站 营销优秀建筑模型案例作品
  • 训做网站的心得体会范文中山市 有限公司网站建设
  • 服装电子商务网站建设过程与实现两学一做学习教育网站
  • 住房和城建设网站怎么用源码建站
  • 监理工程师证查询网站百度关键词优化软件网站
  • 关于建筑建设的网站asp网站建设报告书
  • 服务二级公司网站建设平台销售模式有哪些
  • 南昌县建设局网站微信分销小程序开发
  • 网站设计师需要什么知识与技能wordpress个性
  • 做茶叶网站的目的和规划有什么做照片书的网站
  • 开福区城乡建设局门户网站关键词挖掘查询工具爱站网
  • 网站建设全国排名沈阳seo按天计费
  • 成都公司网站设计无锡seo网站推广费用
  • 建网站平台要多少钱购物网站界面设计策划
  • 学完js了可以做哪些网站长沙建站官网
  • 怎么样做问卷网站多少钱英语
  • 房产网站建设方案建筑公司是干什么的
  • wordpress建的大型网站柳州市网站建设
  • 石家庄做网站的公司有哪些微信自媒体网站建设
  • 池州哪里有做网站注册公司有哪些风险
  • 做古代风格头像的网站对网站政务建设的建议
  • 网站搜索栏怎么做设计个网站要多少钱
  • 阿里巴巴网站建设目标wamp wordpress