c++
lck32578
还是个学生,请多指教!
展开
-
初始化列表与成员顺序注意事项
初始化列表顺序与new有关时:例如成员列表顺序是 int *data;int cap但初始化列表A(): cap(1), data(new int[cap])是错误的!初始化列表只按照成员声明顺序列表构造,与构造无关;所以要养成良好习惯,将初始化列表与成员声明顺序统一原创 2015-05-27 13:20:24 · 473 阅读 · 0 评论 -
no known conversion for argument 1 from ‘[some_class]' to ‘[some_class]&’ 传const引用而非引用
今天做list的迭代器时发现的问题no known conversion for argument 1 from ‘[some_class]' to ‘[some_class]&’ 解决方法,将==的参数传递方式改为(const &)传const引用而非引用:原因:How come a non-const reference cannot bind to a tempo原创 2015-06-08 17:50:05 · 10192 阅读 · 0 评论 -
inline函数
调用函数时需要一定的时间和空间的开销。 C++提供一种提高效率的方法,即在编译时将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去。这种嵌入到主调函数中的函数称为内置函数(inline function),又称内嵌函数。在有些书中把它译成内联函数。指定内置函数的方法很简单,只需在函数首行的左端加一个关键字inline即可。【例4.4】函数指定为内置函数。转载 2015-05-24 16:42:03 · 537 阅读 · 0 评论 -
模板函数的默认模板参数
摘自:http://book.51cto.com/art/201306/400328.htm模板函数的默认模板参数在C++11中模板和函数一样,可以有默认的参数。这就带来了一定的复杂性。我可以通过代码清单2-26所示的这个简单的模板函数的例子来回顾一下函数模板的定义。代码清单2-26#include iostream> using namespace std转载 2015-05-24 17:13:01 · 770 阅读 · 0 评论 -
fstream无法创建文件
#include#include#includeusing namespace std;int main() { string str[6]= {"sbzdh", "sbzh", "sbczl"}; fstream fs; fs.open("test1.txt" /*, ios_base::out*/); fs<< str[0]<< str[1]<< str[2]; fs>> s原创 2015-06-10 20:03:36 · 2285 阅读 · 0 评论 -
error C2601: “...”: 本地函数定义是非法的 && IntelliSense: 不能在成员函数的类外部重定义
error C2601: “Managers::AddChess”: 本地函数定义是非法的 以及 IntelliSense: 不能在成员函数 "Managers::AddChess" 的类外部重新声明该函数原创 2015-06-11 19:31:39 · 21634 阅读 · 10 评论 -
c++ Getline()的问题
今天敲代码用了getline,发现程序崩溃了;调试之后发现循环下,第二次getline直接刷过了。。问题代码:while (true) { getline(cin, name); if (name == "quit") break; cin >> rate; v.push_back(lesson(rate, name)); }原因:怀疑是ci原创 2015-06-10 13:19:43 · 693 阅读 · 0 评论 -
error LNK2005: "class Managers manager" (?manager@@3VManagers@@A) 已经在 Managers.obj 中定义(实例化问题出错)
我们在一个类的头文件中若要实例化一个对象,应该加namespace {实例化对象;}否则会出现如题错误;参考http://stackoverflow.com/questions/27996440/error11error-lnk2005-class-cvmat-imageoutput-imageoutput3vmatcva原创 2015-06-11 20:07:34 · 522 阅读 · 0 评论 -
初学MFC——全局实例化extern
要在stdafx.cpp中定义全局变 TYPE some;然后在要用到的文件中声明它 extern TYPE some;原创 2015-06-13 11:17:34 · 2128 阅读 · 0 评论 -
模板类的嵌套
#includeusing namespace std;templateclass A{ public: struct B { B(T j): i(j) { } T i; }b; A(): b(1) { cout<<"A construct"<< endl; } B get() { // 如果在B后面加, 会导致错误,因为B并非特定模板类,虽然有原创 2015-06-08 15:52:01 · 3148 阅读 · 0 评论 -
c++运算符重载笔记
转自:http://www.cnblogs.com/ForFreeDom/archive/2012/05/26/2519003.html概述:C++ 允许我们重定义操作符用于类类型对象时的含义。如果需要,可以像内置转换那样使用类类型转换,将一个类型的对象隐式转换到另一类型。标准库为容器类定义了几个重载操作符。这些容器类定义了下标操作符以访问数据元素,定义了 * 和 -> 对容器迭代器解引用转载 2015-06-06 14:26:54 · 500 阅读 · 0 评论 -
C++内存分配与对象构造的分离
摘自http://www.cnblogs.com/mengwang024/p/4408841.html在C++中,我们基本用new(delete)操作符分配(释放)内存。new操作符为特定类型分配内存,并在新分配的内存中构造该类型的一个对象。new表达式自动运行合适的构造函数来初始化每个动态分配的类类型对象。即new表达式既分配了内存同时也构造了对象。然而,我们一定会遇到这转载 2015-05-28 17:54:55 · 478 阅读 · 0 评论 -
深入new/delete:类域的operator new重载
作者:zhenjing.chen 出处:http://www.cnblogs.com/zhenjing/ 类域的operator new重载为 class 重载 operator new 时必须定义为类的静态函数 ( 默认为 static 函数 ) 。重载 operator new 更多的是为了提高程序效率,比如使用静态内存代替动态分配,启用小对象分配器等。但是要正确重载类转载 2015-05-28 18:21:19 · 396 阅读 · 0 评论 -
C++内存分配与对象构造的分离
摘自:http://www.cnblogs.com/mengwang024/p/4408841.html在C++中,我们基本用new(delete)操作符分配(释放)内存。new操作符为特定类型分配内存,并在新分配的内存中构造该类型的一个对象。new表达式自动运行合适的构造函数来初始化每个动态分配的类类型对象。即new表达式既分配了内存同时也构造了对象。然而,我们一定会转载 2015-05-28 17:55:14 · 533 阅读 · 0 评论 -
size_t(-1)
今天遇到标准答案中的max_size中的最大可以allocate的数量 size_type max_size() const { return std::size_t(-1) / sizeof(T); } 现在终于搞懂因为size_t是unsigned的所以将-1强制转换为unsigned会得到这个类型的最大数也就是说..原创 2015-05-28 18:50:39 · 1162 阅读 · 0 评论 -
彻底学习STL中的Allocator
摘自http://cissco.iteye.com/blog/379093Allocator是C++语言标准库中最神秘的部分之一。它们很少被显式使用,标准也没有明确出它们应该在什么时候被使用。今天的allocator与最初的STL建议非常不同,在此过程中还存在着另外两个设计--这两个都依赖于语言的一些特性,而直到最近才在很少的几个编译器上可用。对allocator的功能,标准似乎在一些转载 2015-05-22 22:10:47 · 409 阅读 · 0 评论 -
[cpp] 重载运算符规律总结
重载运算符是对正常函数的语法美化.没给语言增加任何基本的东西,但改善了可理解性并降低维护费用.当用户需要时,就应该使用运算符重载,但应该仅仅以用户熟悉的语义方式来使用它。1. 重载规则 不能重载的运算符: . 和 .* 和 ?: 和 :: 和 sizeof 和 typeid重载运算符有两种基本选择: 类的成员函数或者友元函数, 建议规则如下:运算符转载 2015-05-22 21:48:20 · 608 阅读 · 0 评论 -
stringstream的基本用法
转自:http://www.cnblogs.com/propheteia/archive/2012/07/12/2588225.htmlstringstream是字符串流。它将流与存储在内存中的string对象绑定起来。在多种数据类型之间实现自动格式化。1 stringstream对象的使用#include#includeusing namespace转载 2015-06-06 09:49:23 · 403 阅读 · 0 评论 -
流实现int_string转换
#include#include#include//大量使用同一个sstream时要清空缓存, ss.str("");using namespace std;string toString(int num) {stringstream tra;string re;tratra>> re;return re;}int t原创 2015-06-06 09:58:36 · 396 阅读 · 0 评论 -
初学MFC——如何弹出你做的对话框
假设前提:你的对话框已经添加了类,类名为CEnter;在你要弹出对话框的响应函数中添加(如果你要一开始就弹出对话框,那就在OnDraw函数中,如果是某个事件如鼠标左键点击,那就在OnLButtonDown中添加,诸如此类..):CEnter enter; //实例化你的对话框对象,对象名为enter;...//给你的对话框配置一些东西,这里不重要enter.Do原创 2015-06-13 11:30:34 · 985 阅读 · 0 评论