
C++
FanBro
这个作者很懒,什么都没留下…
展开
-
C++多文件结构在VS2013中实现
fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加 #include “stdafx.h”解决方法一: 直接在.cpp头文件上补充include “stdafx.h”。好像就是向源中添加了#include “stdafx.h”。但是还是会报错 错误 1 error C2653: “CComplex”: 不是类或命名空间名称 e原创 2016-10-17 23:11:41 · 1206 阅读 · 0 评论 -
C++输入流函数get
//cin/cout进阶用法//a bit of difficult...//#include<iostream>using namespace std;int main(){ char ch; while ((ch = cin.get()) != EOF) cout.put(ch); return 0;}通过在VS2013中设置断点,观察get的使原创 2016-11-26 21:52:29 · 1933 阅读 · 0 评论 -
函数指针
因为C++多态实现原理理解的需要,回顾C中的函数指针用法。什么是函数指针?即指向函数的指针。原创 2016-12-08 17:10:10 · 269 阅读 · 0 评论 -
复制构造函数学习笔记
一直对这个概念很陌生,今天看了书果然很陌生。(妈的智障)先说说它的来由。你想啊,对象有时候确有复制的需要,而这个时候咋办呢?一个数据成员一个数据成员的复制吗?那如果对象很多,对象里面的数据成员又炒鸡多,那不是得麻烦死!现实的解决方法当然不会这么2B了,只要借助复制构造函数,再多的对象要复制,对象的数据成员再多都不怕。妈妈再也不用担心我复制对象了。复制构造函数和构造函数很像,最大的不同是复制构造函数的原创 2016-12-09 23:28:13 · 373 阅读 · 0 评论 -
编译器都在你的眼皮底下干了啥?
这是一篇用来记录C++旅程中,涉及到编译器行为的文章。“神秘的”编译器在程序运行时都做了些什么,本文将持续关注和更新!在函数返回值时: 这种情况下编译器会在主函数中创建一个无名临时对象。要知道, 被调函数中的局部变量只能在被调函数中存在,不可能在返回主函数后继续生存。必须借助无名临时对象的帮助才能将值传回。原创 2016-12-09 22:33:12 · 352 阅读 · 0 评论 -
C++动态内存分配
动态内存分配的实际意义在于程序运行过程中申请得到内存。首先建立堆对象的概念(这很重要),然后知道建立堆对象的“工具”——new。那什么是堆对象呢?就是程序运行过程中申请得到的内存。而申请过程则称之为建立。下面看我整理的思维导图: 原图链接原创 2016-12-10 20:39:33 · 355 阅读 · 0 评论 -
C++中关于[]静态数组和new分配的动态数组的区别分析
本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加深对C++语言数组的理解。具体区别如下: 一、对静态数组名进行sizeof运算时,结果是整个数组占用空间的大小; 因此可以用sizeof(数组名)/sizeof(*数组名)来获取数组的长度。 int a[5]; 则sizeof(a)=20,sizeof(*a)=4.因为整个数组共占20字节,首个元素(int转载 2017-01-07 17:56:45 · 658 阅读 · 0 评论 -
C++多态学习笔记
看了一堆介绍多态的东西,脑子里就记得几个概念了。静态多态,又叫早绑定,动态多态,应该是叫晚绑定。什么是多态?不要觉得问题“很没用”,你还就是说不出来。同样的命令,不同的对象,做出不同的动作。这就得借助The King of Fighters来解释了。同样是“—>+B”的命令,草稚京发出来的是特殊技 外式轰斧阳,而里不知火舞发出来的是特殊技 黑燕之舞。哈哈,这就是多态。 当然这是复杂一点的多态,另一原创 2016-11-26 17:25:57 · 397 阅读 · 0 评论 -
namespace详解
先从C++流类库中常见的“ios_base::前缀”表达开始。类似 ios_base::left 左对齐值,用填充字符填充右边 ios_base::out 打开一个文件,用于输出。 ios_base::binary 以二进制方式打开一个文件后面的文字解释很清楚,但是为什么都要加个ios_base::呢?这就是命名空间作用域的用法了。因为大型程序不同模块中的类和函数之间容易重名,原创 2016-12-07 21:37:50 · 803 阅读 · 0 评论 -
C++静态成员复习笔记
对象与对象之间也需要共享数据。所以,有了静态成员机制。下面按照遗忘性来。静态数据成员不能在main函数中直接被调用,必须借助类中的访问函数。静态数据成员也是分访问权限的,所以,不能缺少访问权限修饰符。静态数据成员使用step1、先类内“引用性”声明(就是static int count;)step2、类外初始化并分配内存(int Point::count = 0;)。原创 2016-12-07 23:20:50 · 333 阅读 · 0 评论 -
C++基本概念辨析:作用域与可见性
看来网上相当多的人把作用域视同可见性,然而在教程上却把二者讲的有所区别。如下: 作用域是这样一个区域,标识符在程序的这个区域内是有效的。C++的作用域主要有四种:函数原型作用域、块作用域、类作用域和文件作用域。 标识符的可见性是指在程序的某个地方是否是有效的,是否能够被引用被访问。程序运行到某一处时,能够访问的标识符就是在此处可见的标识符。看了好多遍,貌似从语义是有点差别,然而我能力一原创 2016-12-07 19:56:47 · 1963 阅读 · 0 评论 -
C++友元
先从书上的一个例子开始,明白为什么C++需要引入友元的概念。这里认为你熟悉Point类(就是一个记录点的性质的类),如果我要由两个点Point A和Point B计算他们之间的距离,那么程序该如何设计呢?初学类与对象者的第一想法,在Point类里头再写一个函数呗。想想一下情况:假设我在Point类里实现了这个函数,那在此函数中必然要用到本类的实例化对象,因为要通过这个对象访问到它的数据成员来进行距离原创 2016-12-07 17:34:12 · 421 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 "public: __thiscall Date::~Date(void)" (??1Date@@QAE@XZ),该符号在函数 _main 中被引用
是因为你的析构函数没{}或者误用分号代替{}~Date;//导致错误~Date{}//ok原创 2016-10-04 20:45:53 · 3806 阅读 · 1 评论 -
错误 1 error C2248: “Point::count”: 无法访问 private 成员(在“Point”类中声明)
指针可以访问静态数据成员不能是private成员。原创 2016-10-20 16:24:06 · 880 阅读 · 0 评论 -
C++低级错误集合
1) 忽略权限声明,说白了,忘记写public2) http://blog.youkuaiyun.com/slwbcsdn/article/details/52735325 经常遇到的obj和exe文件的错误:无法解析的外部命令。这个错误吧,可能因为在exe文件所以VS2013不会确定代码哪一行的问题,说白了,这个错误编译器帮不了忙了,只能自己找。怎么解决呢?看链接。3) class的大括号后原创 2016-12-01 23:12:59 · 1119 阅读 · 0 评论 -
const用法详解
这篇是复习时,参考《C++语言程序设计(第四版)》写的学习笔记。可能对个人的意义更大一些。都是很基础的知识,不适合已经熟练使用了编程语言的人看。就这样。首先,const的使用意义在于,完美的解决了数据共享与保护的问题。所以个人觉得还是面向对象编程很重要的一个部分。常对象,就是给类的对象加个const呗。规矩还是有几个但是相对简单。 第一、常对象必须初始化,就是在定义的时候就必须给他赋值。为啥子?因原创 2016-12-09 20:45:31 · 689 阅读 · 0 评论 -
C++指针学习笔记
```void f(int p[]);void f(int p[3]);void f(int *p);```原创 2016-10-20 19:26:06 · 454 阅读 · 0 评论 -
C++继承
文章开头先打一波广告,慕课网C++继承的课讲的真心到位,有空多看看:http://www.imooc.com/video/8703。所以呢,我这篇笔记就是我自己学习的一个记录。如果看到这里浪费了网友的时间,抱歉,您只管转走,靴靴。一道题先从一道我死活“没想通”的关于基类和派生类的对象、指针转换问题的一道题说起,代码跟上, 定义一个基类BaseClass,从它派生出类DerivedClass,Ba原创 2016-12-01 20:45:19 · 1111 阅读 · 0 评论 -
从程序的执行过程到多态
本来是复习C++多态的,但由于多态的实现与程序的执行过程结合的“很密切”,干脆就先理清楚程序的执行过程好了。参考链接: https://my.oschina.net/u/180716/blog/52836 http://blog.sina.com.cn/s/blog_724d24bf0100yfe9.html上面的链接把程序的整个执行过程都说明的很细致,但好像还没有完全对应上绑定中的两个重要阶段原创 2016-12-08 14:44:00 · 347 阅读 · 0 评论 -
一道题
定义基类Base,有两个共有成员函数fn1()、fn2(),私有派生出Derived类,如果想在Derived类的对象中使用基类函数fn1(),应怎么办? 我的代码:#include<iostream>using namespace std;class Base{public: Base(){} ~Base(){} void fn1(); void fn原创 2016-12-02 21:13:20 · 2450 阅读 · 0 评论 -
C++指针实战
我要知道array+i实际上偏移了i * N个单位; 二维数组作为函数参数传递给函数的时候,为什么第二维必须指定大小? 联合理解。 厉害了我的针!原创 2016-11-05 20:47:50 · 415 阅读 · 0 评论 -
工程实践2
在技术总结之前,先上一波宏观经验。首先,Java和C++还是在很多细节性的地方区别蛮大的(JAVA果然是阉割了的C++)。其次,项目安排一定要分清阶段任务,就像最短路径问题。分清任务次序很重要。分清哪些是基础功能哪些是优化功能,基础功能就是必须实现的,哪怕效率不高等等问题,但必须安排在优化功能之前实现。OK!技术经验捧上! 1、多文件结构使用静态成员的麻烦。具体到工程实践2里,就是静态调用背景绘原创 2016-12-15 19:51:32 · 1185 阅读 · 1 评论