随笔分类 - C++
C++
摘要:1. void* 必须强制类型转换,void* 不能解引用2. 通过函数改变指针所指向的值int parse_int(const std::string line, int* outputvalue) { int a=12; *outputvalue=a;//通过改变指针所指变量的值,而不是改变...
阅读全文
摘要:1 . 必须将头文件的.h 和实现文件的.cpp都加入到 main文件中不然会抛出c++ undefined reference to `test::Test1::parse_int 异常
阅读全文
摘要:zhixingC++ char*,const char*,string的相互转换1.string转const char*strings="abc";constchar*c_s=s.c_str();2.const char*转string 直接赋值即可constchar*c_s="abc";strin...
阅读全文
摘要:格式:类型标识符 &函数名(形参列表及类型说明){ //函数体}好处:在内存中不产生被返回值的副本;(注意:正是因为这点原因,所以返回一个局部变量的引用是不可取的。因为随着该局部变量生存期的结束,相应的引用也会失效,产生runtime error!注意事项:(1)不能返回局部变量的引用。这条可以参照...
阅读全文
摘要:.h头文件中,只能存在变量或者函数的声明, 而不要放定义。即,只能在头文件中写形如:extern int a;和void f();的句子。这些才是声明。如果写上int a;或者void f() {}这样的句子,那么一旦这个头文件被两个或两个以上的.cpp文件包含的话,编译器会立马报错。(关于exte...
阅读全文
摘要:指针(*)和引用(&),解引用(*)和取地址(&), 主要观察是在左面, 还是在右面, 如果在左面是前者, 在右面是后者;如果比较多, 则要认真观察, 譬如int*&, 就是指针的引用, 可以避免指针内部元素的复制;还有其他的一些形式, 见下面的例子;/* * test.cpp * * Creat...
阅读全文
摘要:转载:http://blog.csdn.net/lovekatherine/article/details/1778422对基类进行继承时,三种继承方式下,基类的三种访问权限在子类中会有如何的变化这个问题,本科时上C++这门课的时候曾仔细的分析并弄得挺清楚,后来时间久了、用的也不多,慢慢的又变得心里不太有谱了。这次接着准备面试的契机,又重新仔细分析了一番,留个案底,以免再犯糊涂。三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问三种继承方式 public 继承 protect 继承 private 继承组
阅读全文
摘要:C/C++定义常量#define与const比较1。const定义常量是有数据类型的,而#define宏定义常量却没有。这样const定义的常量编译器可以对其进行数据静态类型安全检查,而#define宏定义的常量却只是进行简单的字符替换,没有类型安全检查,且有时还会产生边际效应(不如你愿处)。所谓边际效应举例如下: #define N 100 #define M 200 + N 当程序中使用 M*N 时,原本想要 100 * (200+ N )的却变成了 100 * 200 + N。const检查定的类型,如 const float pi = 3.141592653,实际的pi是3...
阅读全文