共 25 篇文章 |
|
#ifdef __cplusplusextern "C" {#endif/*...*/#ifdef __cplusplus}#endif.extern void print(int i);而且当指定一个函数指针的编译和连接方式时,函数的所有类型,包括函数名、函数引入的变量也按照指定的方式编译和连接。注意:typedef int (*FT) (const void* ,const void*),表示定义了一个函数指针的别名FT,这种函数指针指向的... 阅14 转0 评0 公众公开 15-08-04 17:02 |
C++智能指针(auto智能指针(auto_ptr) 这个名字听起来很酷是不是?auto_ptr 是C++标准库提供的类模板,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存的拥有者,一块内存不能同时被分给两个拥有者。1) 按值传递时,函数调用过程中在函数的作用域中会产生一个局部对象来接收传入的auto_ptr(拷贝构造),这样,传入的实参auto_ptr就... 阅60 转0 评0 公众公开 15-02-11 17:28 |
因为在基类中定义了带参构造函数,编译器不会提供默认构造函数。下面采用的是调用基类带参构造函数的方式:class Cat:public Animal{public:Cat():Animal(100,200) { cout <<"init cat" <<endl; }};即在构造函数的后面增加一个冒号,后面是基类的构造函数。如下所示:class Cat:public Animal{public:Cat():Animal(100,2... 阅399 转1 评0 公众公开 15-02-09 11:37 |
c语言 inline函数的总结。1 inline只是个编译器建议,编译器不一定非得展开Inline函数。2 inline必须用于函数定义,对于函数声明,inline不起作用。3 inline定义的函数 和 宏定义一样,只在本地文件可见。2. inline--->本地展开,外地为Inline函数生成独立的汇编代码。特性2.extern inline的函数允许和外部函数重名,即在存在一个外部定... 阅1325 转1 评0 公众公开 15-02-06 09:51 |
C++ 关键字typeid.程序中创建type_info对象的唯一方法是使用typeid操作符(由此可见,如果把typeid看作函数的话,其应该是type_info的 友元)。<<typeid(pb).name()<<endl.即:当typeid操作符的操作数是不带有虚函数的类类型时,typeid操作符会指出操作数的类型,而不是底层对象的类型。如果typeid操作符的操作数是至少包含一个虚... 阅8 转0 评0 公众公开 15-01-08 10:41 |
auto_ptr(auto_ptr& source) // note the missing const{ p = source.p;source.p = 0;unique_ptr(unique_ptr&& source) // note the rvalue reference { ptr = source.ptr;source.ptr = nullptr;// release the old resource ptr = source.ptr;unique_ptr& operator=(unique_ptr source) // note the missing reference { std:... 阅50 转0 评0 公众公开 15-01-07 14:18 |
C++引用 &&指针4.指针和引用有什么分别;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在NULL引用,引用必须与合法的存储单元关联;而指针则可以是NULL. (3) 引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用;const 指针仍然存在空指针,并且有可能产生野指针. 总... 阅287 转1 评0 公众公开 15-01-07 11:15 |
<FONT color=#ff0000>static_cast</FONT><SPAN style="COLOR: rgb(255,0,0)">、dynamic_cast、reinterdivt_ca static_cast、dynamic_cast、reinterdivt_ca.使用标准C++的类型转换符:static_cast、dynamic_cast、reinterdivt_cast、和const_cast。3.1 static_cast用法:static_cast <type-id >( exdivssion ) 该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。3.3 reindivter_cast用法:reindivter_cast <type-... 阅9 转0 评0 公众公开 15-01-07 09:24 |
关于“using namespace std”对于一个存在着标准输入输出的C++控制台程序,一般会在#include <iostream>的下一行发现一句话,using namespace std。这句话其实就表示了所有的标准库函数都在标准命名空间std中进行了定义。1. 关于namespace C++引入了命名空间namespace主要解决了多个程序员在编写同一个项目中可能出现的函数等重名的现... 阅10 转0 评0 公众公开 15-01-06 15:46 |