更多课程 选择中心

C/C++培训
达内IT学院

400-996-5531

C++培训学习中的技巧方法

  • 发布:C++培训
  • 来源:C++资讯
  • 时间:2020-03-24 16:38

在网络行业中有许许多多的编程语言,而C++语言也是很多语言当中比较难学的一种,既然C++语言相比于其他语言难度程度比较大,直接的也就造成了在学习过程中的失误,那么如果想要减少失误,就要了解在学习中的小技巧,很多小技巧能够帮助我们跨越很多障碍,C++培训班教你在学习C++中的技巧。

1. 什么是指针常量?

指针常量即指针类型的常量。

例:char *const name1="John";

name1="abc"; //错误,name1指针,不能变,一个指针类型的变量,存放的是地址,所以不能把'"abc"的地址赋给name1

char * name2= name1; //可以

2. 什么是常量指针?

常量指针即是指向常量的指针,指针的值可以改变,指针所指的地址中的内容为常量不能改变,

例:const char *name1="John";

char s[]="abc"; name1=s; //正确,name1存放的地址可以改变

char * name2= name1; //不可以,因为name2 和 name1存放的是同一块地址,如果name2地址中的内容改了,则name1的内容也改了,那么name1就不再是指向常量的指针了。一句话,靠近哪个哪个不能改变!

3.编译错误:“outside of class is not definition "

有一种可能的情况:You have semicolons (;) at the end of all your function definitions making the compiler think they're declarations.

即在方法定义的后面都误添加上了";",导致编译器认为这仅仅是个声明。

4.编译错误:“undefined reference to `typeinfo”

The fix? You've got line(s) like

virtual float getarea() ;

that should read

virtual float getarea() {} ;

The complete (working) source code files for this example are available here

在析构函数后面添加了{},再make,问题解决了。我的所有虚函数都是有定义的,没想到就因为写基类的这个虚析构函数大意,没写函数体就出现了一个困扰我几天的莫名其妙的错误。就virtual ~CSgAnalyseStatBase();和virtual ~CSgAnalyseStatBase() {};的区别,编译可以通过却搞出个莫名其妙的链接错误。

链接器linker需要将虚函数表vtable 放入某个object file,但是linker无法找到正确的object文件。这个错误常见于刚刚创建一系列有继承关系的class的时候,这个时候很容易忘了给base class的virtual function加上函数实现。解决办法:给基类的virtual函数加上本来就应该有的function body。当含有虚函数的类未将析构函数声明为virtual时也会出现这个链接错误。

免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:C++培训学习中常见的错误有哪些?
下一篇:C++常见内存错误及解决方案

C语言宏定义的几种使用方法

C与C++内存管理避坑指南

C/C++代码规范注释有哪些讲究?

C语言中,全局变量滥用的后果竟如此严重?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省