常对象与this指针】的更多相关文章

[1]示例代码 用代码说事,比较靠谱.请看下例: #include <QDebug> #include <QString> class Person { public: Person(int nAge, QString name); Person(, , QString name = "xiaoZhang"); int getAge(); int getAge() const; QString getName(); int getSex(); int getSe…
指向对象的常指针 将指向对象的指针变量声明为const型,并使之初始化,这样指针值始终保持为其初始值,不能改变. Time t1(10,12,15),t2; Time * const ptr1=&t1; ptr1=&t2; 定义指向对象的常指针的一般形式为 类名    *    const    指针变量=对象地址; 注意应该在定义指针变量时使之初始化 指向对象的常指针变量的值不能被改变,即始终指向同一个对象,但可以改变其所指向对象中的数据成员(非const型)的值. 往往用常指针作为函数…
this指针引入 类中对象的成员变量和成员函数是分开存储的,sizeof(空class) = 1,另外示例中涉及到字节对齐的问题,double本身的字节为8,int为4,由于字节对齐,int也为8,所以最终字节数为16 class Person{ int m; //非静态成员变量,属于对象 sizeof(Person) = 4 static int n; //静态成员变量,不属于对象 sizeof(Person) = 4 static void func(); //静态成员函数,不属于对象 si…
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhuyingqingfen/article/details/31751111 先明白几个概念: 1. 常对象仅仅能调用常成员函数. 2. 普通对象能够调用所有成员函数. 3. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数.每次成员函数存取数据成员时,由隐含使用this指针.4. 当一个成员函数被调用时,自己主动向它传递一个隐含的參数.该參数是一个指向这个成员…
常量:对于既需要共享.又需要防止改变的数据.在程序运行期间不可改变. const 修饰的是对象中的 this 指针.所以不能被修改. 1.常对象 数据成员值在对象的整个生存期内不能改变.在定义时必须初始化,而且不能被更新. 常对象,只能调用常成员函数,保证常对象的数据成员不被改变. class point { public: point(int i, int j) { x = i, y = j; } private: int x, y; }; // 定义常对象 point , ); // 定义时…
原文地址不详 如下程序: #include <iostream> #include <string> using namespace std; class Student { public: static int number; string name; public: Student() { } void set(string str) { name = str; number++; // 调用静态数据成员 } void print() // 态成员函数 print() { st…
c++多态性是依靠虚函数和父类指针指向子类对象来实现的.简单来说,父类中定义虚函数,父类指针指向子类对象,父类指针调用函数时调用的就是子类的函数. 父类没有定义虚函数,父类指针指向子类对象时,父类指针调用的函数还是父类的函数. dynamic_cast可以实现将子类指针动态转换成父类指针(相当于父类指针指向了子类对象),用dynamic_cast时,父类必须要有virtual声明的虚函数. 父类指针转换成子类指针(也就是子类指针指向了父类对象)是危险的,dynamic_cast失败会返回NULL…
常对象 常对象必须在定义对象时就指定对象为常对象. 常对象中的数据成员为常变量且必须要有初始值,如 Time const t1(12,34,36); //定义t1为常对象 这样的话,在所有的场合中,对象t1中的所有数据成员的值都不能被修改.凡希望保证数据成员不被改变的对象,可以声明为常对象. 定义常对象的一般形式为 类名    const    对象名(实参列表); 也可以把const写在最左面 const    类名    对象名(实参列表); 二者等价 如果一个对象被声明为常对象,则不能调用…
转载自:http://blog.csdn.net/huang_xw/article/details/7934156 在C++编程语言中,有很多功能都与C语言相通,比如指针的应用等等.在这里我们介绍的则是一种类似于函数指针的C++函数对象的相关介绍.C++函数对象不是函数指针.但是,在程序代码中,它的调用方式与函数指针一样,后面加个括号就可以了.这是入门级的随笔,说的是函数对象的定义,使用,以及与函数指针,成员函数指针的关系. C++函数对象实质上是一个实现了operator()--括号操作符--…
应用:http://www.cnblogs.com/del88/p/6361117.html 有 class of object ----- 类的类型 那么自然有 方法的类型,方法的类型 分为两种: 普通方法: function abc(): string; 类的方法 function TLei.abc(): string; 所以定义方法的类型的时候 就有如下区别: TPro1 = procedure;//一个普通的无参数过程指针 TPro2 = procedure(a: string); //…