[1] (int *)x和(int *(const int))x不在同一层namespace,编译通过. 链接时出错.(int *)x将(int *(const int))x覆盖,所以在c行时会找不到匹配的函数名 1intx(constintint_a) {returnint_a;}//a 2 3structx 4{ 5intx; 6}; 7 8//#define x(x) x 9 10intmain(intargc,char*argv[]...
int age; public: void setName(char *name); int setAge(int age); void printInfo(void); }; void printVersion(void); } #endif 然后,紧接着来看 dog.cpp 里面的内容。代码如下所示: 代码语言:txt 复制 #include "dog.h" namespace C{ void Dog::setName(char *name) { this->name = name;...
1#ifndef _DEMO_H_2#define_DEMO_H_34voiddeclaration(inta,intb);//声明一个全局函数;5externintnumber;//声明一个全局变量;6classtest{7...;8staticinta;//类内声明一个静态类数据成员;9voidfunc(int,int);//类内声明一个成员函数10intb;//类内声明一个普通数据成员11...};1213classA;//类的声明...
9.3 尽量以 const 替换#define 10、引用(reference) 10.1 引用基本用法 10.2 函数中的引用 10.3 指针引用 10.4 常量引用 11、内联函数(inline function) 11.1 内联函数的引出 11.2 预处理宏的缺陷 11.3 内联函数 12、函数的默认参数 13、函数的占位参数 14、函数重载(overload) 14.1 函数重载概述 14.2 函数重...
C++中的using 的作用,typedef与#define的区别 2、命令空间的using声明 我们在书写模块功能时,为了防止命名冲突会对模块取命名空间,这样子在使用时就需要指定是哪个命名空间,使用using声明,则后面使用就无须前缀了。例如: using std::cin; //using声明,当我们使用cin时,从命名空间std中获取它...
/* t.h */#ifndef _H_ #define _H_ int a;#endif/* foo.c */#include<stdio.h>#include"t.h"struct{char a;int b;}b={2,4};intmain();voidfoo(){printf("foo:\t(&a)=0x%08x\n\t(&b)=0x%08x\n \tsizeof(b)=%d\n\tb.a=%d\n\tb.b=%d\n\tmain:0x%08x\n",&a,&b,size...
#define NDEBUG// 加上这行,则 assert 不可用#include<assert.h>...assert(p!=NULL);// assert 不可用 6.setjmp和longjmp #include<setjmp.h>#include<math.h>#include<stdio.h>staticjmp_bufenv;doubledivide(inta,intb){constdoubleeps=1e-9;doubleret=0;if(fabs(b)<eps){// 除数为0,发生错误lon...
const 有类型,可以进行编译器类型安全检查,#define没有类型,不会进行类型检查 const有作用域,而#define没有作用域,默认到文件末尾都是有效的 引用 引用是C++对C的重要扩充。在C/C++中,指针的作用基本都是一样的,但是在C++中增加了另外一种给函数传递地址的途径,这就是按引用传递,它也存在于其他语言中,不是C++...
1)new int; //开辟一个存放整数的存储空间,返回一个指向该存储空间的地址。int *a = new int 即为将一个int类型的地址赋值给整型指针a 2)int *a = new int(5) 作用同上,但是同时将整数空间赋值为5 2.开辟数组空间 对于数组进行动态分配的格式为:指针变量名=new 类型名[下标表达式];delete...