C++
成年老猿
国内TOP10学校研究生毕业
8+年大厂经验
很高兴在这里和大家进行技术交流
展开
-
“class”类型重定义 || 防止头文件重复加载 || 两个类之间互相引用
“class”类型重定义 : 一般都是头文件重复include引起的。 防止头文件重复加载: 系统那些头文件,无论怎么include都没事,因为一般都用了宏定义,防止重复。 在头文件最上方写: #ifndef XXXXXXX (一个名字,尽量做到唯一) #define XXXXXXX (跟上边的名字一样) 文件最后写: #endif转载 2013-11-18 22:04:41 · 785 阅读 · 0 评论 -
c++之引用篇(&)
C++引用详解 引用的概念引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名; 如下:定义引用ra,它是变量a的引用,即别名。 int a; int &ra=a; (1)&在此不是求地址运算符,而是起标识作用。 (2)类型标识符是指目标变转载 2013-12-06 15:55:28 · 342 阅读 · 0 评论 -
java下的socket通信与C/C++下的socket通信
JAVA下的socket通信:关键点:由Socket对象得到输入流(即由另一方发过来的数据),此时构造BufferedReader对象由Socket对象得到输出流(即发往另一方的数据),此时构造PrintWriter对象客户端:public class Client { public static void main(String[] args) throws原创 2014-02-20 16:12:15 · 715 阅读 · 0 评论 -
vs2010下搭配opticks
一.配置之前要下载的东西:1. Visual Studio 20102. QT库安装完QT后应配置环境变量,否则示例程序不能运行,在系统变量PATH中添加QT路径,如C:\Qt\4.7.4\bin.3. PythonPython2.5或2.6,注意不要安装3.0以上版本,配置环境变量.4. SVNSlik-Subversion (Subversion Command原创 2014-03-10 18:15:00 · 821 阅读 · 0 评论 -
收获的一天
今天拿到一个软件源码,需要配置环境,配了一上午,基本上是完成了,但是总是出现一些系统找不到指定路径的错误,因为考虑到项目有用到QT,于是按照http://www.cnblogs.com/rockhawk/archive/2010/12/15/1906956.html将vs2010配置好。发现还是出现 系统找不到指定路径 的错误。于是就去看每一个项目,发现其附加依赖项什么的关于路径的全部原创 2014-03-17 20:16:48 · 450 阅读 · 0 评论 -
关于C++的static
今天打算在一个项目里面写个自己的类,结果发觉C++的类忘记了很多(看来不能总是跟java打交道,不然很容易把C++跟java的类)原创 2014-04-10 10:46:44 · 590 阅读 · 0 评论 -
神经网络训练样本和测试样本的区别
训练样本是用来训练学习机的,测试样本是学习机要识别的对象。比如你想让一台电脑能识别茶杯,首先你要准备一个茶杯(训练样本),然后把茶杯给计算机看(数据输入),并告诉电脑说这样的东东是茶杯(期望输出),电脑看到茶杯后它认为是花盆,但看到你的期望是茶杯,他就不停训练自己这个是茶杯不是花盆,直到电脑他自己认为茶杯是茶杯后结束(这个过程叫学习),然后你把另一只茶杯(测试样本)放在电脑面前,并问他这是什么东东转载 2014-05-11 15:52:44 · 13237 阅读 · 0 评论 -
又是一个链接库的问题
今天又碰到一个链接库的问题。。写了一个自己的链接库,然后需要在另一个程序中调用,在使用的时候总是提示:导致LIBCMTD.lib 和 MSVCRD.lib造成冲突一顿百度一个Debug版的dll链接时,VS会首先链接QT的Debug库,比如QtCoreD.dll,而QtCoreD.dll内部又一定链接了VC的Debug库,比如msvcrD.dll,自己写的dll原创 2014-12-27 17:44:19 · 451 阅读 · 0 评论 -
未定义基类的问题
今天在写代码的时候 发现遇到一个 未定义基类的问题,郁闷了好久,通过查资料发现原来是在OgreApp1.h的头文件中 include 了自己写的一个控制器类 #include “UnitManager.h”,而只有UnitManager这个类重载BaseApplication的几个虚函数才能达到控制器的作用,而且OgreApp1这个类也是继承了BaseApplication这个类,所以我又原创 2015-01-15 22:14:08 · 5987 阅读 · 0 评论 -
来自知乎:关于while(cin>>string)的输出结果
string line;cin>>line;cout输入hello world 就会输出 hello如果写成while(cin >> line)cout一样的输入,就会输出 helloworld注意:空格是cin的分隔符 std::string是一种容器,在第二种方式中,每次循环更新一次这个容器在第二种方式中,每次while都只是把一个空格前的一个写入输出流。原创 2014-12-28 11:49:52 · 803 阅读 · 0 评论 -
关于句柄类与重载操作符
好久没写文章了,重新开始吧。。这次看c++ primer的过程遇到一个句柄类的问题,感觉值得编写代码测试一下,想到之前一直对MFC中句柄概念不太熟悉,所以决定自己写一个句柄类实现一下。通过一下午对句柄类的研究,我个人感觉,句柄类其实就是对各种类的封装,同时又作为一个桥梁将父类与子类进行动态绑定。而且通过句柄类,你可以将你的父类,子类中不想要用户使用的变量或者函数置为private的,然原创 2014-12-26 20:53:58 · 518 阅读 · 0 评论 -
关于建树以及建单链表时要使用二重指针的原因
今天终于打算来处理下这个问题了,至于为什么有的时候形参要使用二重指针,尤其是在建树以及建立单链表的时候。 我们知道,在建立树节点以及建立链表的节点的时候,一般的教材里面是这样写 (Node *)malloc(sizeof(Node)) 这里我认为就是为什么要使用二重指针的原因int BTreeCreate(BTree **tp){ //构造方法,或者说构造顺序:从左子树开始构造原创 2015-03-25 21:57:43 · 1545 阅读 · 0 评论 -
effective c++ 记录之对象切割问题
今天看effective c++ 发现里面有句话不太理解"造成此对象的行为像个derived class对象"的那些特化性质全被切割掉了,仅仅留下一个base class对象"总感觉这话听起来特别拗口,于是在程序里面大致实现了下 window:父类window_son:子类代码如下:window.h#pragma once#include #include #原创 2015-06-29 00:06:58 · 598 阅读 · 0 评论 -
c++模板学习(二)
四、类模板的默认模板类型形参 1、可以为类模板的类型形参提供默认值,但不能为函数模板的类型形参提供默认值。函数模板和类模板都可以为模板的非类型形参提供默认值。 2、类模板的类型形参默认值形式为:template class A{};为第二个模板类型形参T2提供int型的默认值。 3、类模板类型形参默认值和函数的默认参数一样,如果有多个类型形参则从第一个形参设定了默转载 2013-12-06 15:00:48 · 411 阅读 · 0 评论 -
C++模板学习(一)
C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。 使用模板的目的就是能够让程序转载 2013-12-06 14:40:17 · 487 阅读 · 0 评论 -
c++ 类模板
有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int{ public : Compare(int a,int b) { x=a; y=b; } int max( ) { return (x>y)?x:y;}int min( )转载 2013-11-22 15:00:04 · 523 阅读 · 0 评论 -
c++堆栈
堆栈的概念(我的理解堆就是heap,栈就是stack,有别于有些人的提法:堆栈就是指stack)对于一个C++或者任何语言的程序员都是极度重要的,除非你是只准备停留在语言syntax层面的coder, 堆栈对于理解语言运行原理和环境实在太重要,比如你在C++中只要写简单一句 int arr[1000000]; 你的程序肯定就会遇到运行时的错误报告,其实就是stack overflow, 要知道通常转载 2013-11-22 14:34:17 · 662 阅读 · 0 评论 -
c++智能指针的设计和使用
http://blog.csdn.net/hackbuteer1/article/details/7561235 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类转载 2013-11-22 15:06:58 · 536 阅读 · 0 评论 -
c++ inline函数 未完待续。。
比如 int g(int x) { return x + x; } int f() { return g(); } 这样f会调用g,然后g返回x + x给f,然后f继续把那个值返回给调用者。 如果g是inline的话。f会被直接编译成。 int f() { return x + x; } 相当于把g执行的操作直接融合到f里。这样减少了调用g消耗的时间,但同时转载 2013-11-25 20:36:07 · 383 阅读 · 0 评论 -
c++ this指针的用法
this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子: void Date::setMonth( int mn ) { month = mn; // 这三句是等价的 this->month = mn; (*this).month = mn; } 1. this只能在成员函数中使用。全局函数,静态函数都转载 2013-11-25 21:13:20 · 434 阅读 · 0 评论 -
C++迭代器的使用
1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector定义的iterator类型。(2) 使用迭代器读取vector中的每一个元素:vector ivec(10,1);for(vector转载 2013-11-14 08:49:28 · 813 阅读 · 0 评论 -
c++ static 两种用法
简介C#与C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。面向过程的static静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:?12转载 2013-11-14 21:55:03 · 631 阅读 · 0 评论 -
c++中的lib和dll
什么是lib文件,lib和dll的关系如何(1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的转载 2013-11-30 20:35:41 · 598 阅读 · 0 评论 -
c语言控制台的俄罗斯方块
#include "stdafx.h"#include "plane.h"#include "myPlane.h"#include "missile.h"#define NUM 3LRESULT CALLBACK WndProc ( HWND,UINT,WPARAM,LPARAM );HWND hwnd;HDC hdc;plane p[NUM];myPlane *my_plane转载 2013-12-01 23:33:21 · 955 阅读 · 0 评论 -
正则表达式
目录跳过目录本文目标如何使用本教程正则表达式到 底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负 向零宽断言注释贪婪与懒惰处理选项平衡组/递 归匹配还 有些什么东西没提到联系作者最 后,来点广告……网上的资源及本文参 考文献更新纪录本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使转载 2013-12-09 10:55:13 · 361 阅读 · 0 评论 -
多态(未完)
一.什么是多态比如有一个父类superClass,它有2个子类subClass1,subClass2。superClass有一个方法func(),两个子类都重写了这个方法。那么我们可以定义一个superClass的引用obj,让它指向一个子类的对象,比如superClass obj = new subClass1();那么我们调用obj.func()方法时候,会进行动态绑定,也就是obj原创 2013-12-04 21:47:13 · 417 阅读 · 0 评论 -
对象引用前加const报错:不能将“this”指针从“const a”转换为“a
#include "stdafx.h"#include using namespace std;class a{ int i;public: a(int j):i(j) {} void show() { cout<<"i="<<i<<endl; }}; void test(const a &aa){转载 2015-07-05 22:21:09 · 678 阅读 · 0 评论