2012-08-08 15:30
⁄ 工业·编程
⁄ 共 1345字
虚拟继承在一般的应用中很少用到,所以也往往被忽视,这也主要是因为在C++中,多重继承是不推荐的,而一旦离开了多重继承,虚拟继承就完全失去了存在的必要.(因为这样只会降低效率和占用更多的空间,实在是一无是处)。
以下面的一个例子为例: #include <iostream.h> #include <memory.h> class CA { int k; //为了便于说明后面的内存结构特别添加 ...
c++阅读全文
2012-08-08 14:55
⁄ 工业·编程
⁄ 共 1540字
如果嵌套类型和其外部类型之间的关系需要成员可访问性语义,需要使用C++嵌套类,嵌套类型不应针对其声明类型以外的类型执行任务,而C++局部类允许类、结构和接口被分成多个小块儿并存储在不同的源文件中,这样的实现很容易开发和维护。
C++局部类: 在一个函数体内定义的类称为局部类。局部类中只能使用它的外围作用域中的对象和函数进行联系,因为外围作用域中的变量与该局部类的对...
c++阅读全文
2012-08-08 14:38
⁄ 工业·编程
⁄ 共 915字
在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误。
深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的...
c++阅读全文
2012-08-08 14:36
⁄ 工业·编程
⁄ 共 1089字
对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=88; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
#include <iostream> using namespace std;
class CExample { private: int a; public: CExample(int b) { a=b;} &...
c++阅读全文
2012-08-08 14:28
⁄ 工业·编程
⁄ 共 1129字
1. 枚举的定义枚举类型定义的一般形式为:
enum 枚举名{ 枚举值表 };
在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。
例如:
该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。
2. 枚举变量的说明
如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。
设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式...
c++阅读全文
2012-08-08 14:26
⁄ 工业·编程
⁄ 共 2399字
一、预备知识—程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分:
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)— 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在...
c++阅读全文
2012-08-08 14:17
⁄ 工业·编程
⁄ 共 245字
#define swap(x,y) {int temp=x;x=y;y=temp;} //换行写法 #define swap(x, y)\ int temp = x;\ x = y;\ y = temp;
#define swap(x,y) {x= x+y;y=x-y;x=x-y;} //换行写法 #define swap(x,y)\ x=x+y;\ y=x-y;\
x=x-y;\
通过按位异或运算,可以实现两个值的交换,而不必使用临时变量
void swap(int &a,int &b) { a=a^b; b=a^b; &...
c++阅读全文
2012-08-08 14:15
⁄ 工业·编程
⁄ 共 695字
第一:private, public, protected 访问标号的访问范围
private:只能由1.该类中的函数、2.其友元函数访问。
不能被任何其他访问,该类的对象也不能访问。
protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。
但不能被该类的对象访问。
public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。
注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的...
c++, 区别阅读全文
2012-08-08 13:57
⁄ 工业·编程
⁄ 共 693字
为了编译器区分前置和后置++,C++规定后缀形式有一个int类型参数 ,当函数被调用时,编译器传递一个0做为int参数的值给该函数。不这样规定,无法区分,因为都仅以自身对象为入参。
下面是一个简单的例子:
class CInt { private : int m_value; // } ; CInt & CInt:: operator ++...
c++阅读全文
2012-08-08 13:55
⁄ 工业·编程
⁄ 共 1158字
/* 今天看了c++发明人的the c++ programming language(special edition)关于临时对象的说明,虽然是一小节,但感觉c++的书籍,论内容还是这本最权威,里面很多东西都直接确定的表达了出来,权威、确定而令人信服。
临时对象的生存时限在这本书中只花了不长的篇章,但说的很清楚,临时对象的生存时限 限制在其出现的“完整”的表达式中,“完整”的表达式结束了,临时对象也就销毁了。例外是...
c++阅读全文