随笔分类 -  C/C++

摘要:每种类型还定义了创建该类型的对象时会发生什么——构造函数定义了该类类型对象的初始化。类型还能控制复制、赋值或撤销该类型的对象时会发生什么——类通过特殊的成员函数:复制构造函数、赋值操作符和析构函数来控制这些行为。 复制构造函数是一种特殊构造函数,具有单个形参,该形参(常用 const 修饰)是对该类 阅读全文
posted @ 2016-02-23 18:52 _No.47 阅读(298) 评论(0) 推荐(0)
摘要:类通常应定义一个默认构造函数 为了例示需要默认构造函数的情况,假定有一个 NoDefault 类,它没有定义自己的默认构造函数,却有一个接受一个 string 实参的构造函数。 定义这样的一个类没有错,这样编译会编译成功: class NoDefault { public: void output( 阅读全文
posted @ 2016-02-22 14:42 _No.47 阅读(295) 评论(0) 推荐(0)
摘要:一个类: class Sales_item { public://程序的所有部分都可以访问带有 public 标号的成员。类型的数据抽象视图由其 public 成员定义。 // operations on Sales_item objects double avg_price() const; bo 阅读全文
posted @ 2016-02-19 18:36 _No.47 阅读(234) 评论(0) 推荐(0)
摘要:IO标准库类型和头文件 出于某些原因,标准库类型不允许做复制或赋值操作。 ofstream out1, out2; out1 = out2; // error: cannot assign stream objects // print function: parameter is copied o 阅读全文
posted @ 2016-02-18 18:34 _No.47 阅读(433) 评论(0) 推荐(0)
摘要:重载函数 出现在相同作用域中的两个函数,如果具有相同的名字而形参表不同,则称为重载函数。 使用某种程序设计语言编写过算术表达式的程序员都肯定使用过重载函数。表达式 1 + 3 调用了针对整型操作数加法操作符,而表达式 1.0 + 3.0 调用了另外一个专门处理浮点操作数的不同的加法操作。根据操作数的 阅读全文
posted @ 2016-02-18 13:51 _No.47 阅读(290) 评论(0) 推荐(0)
摘要:举一个例子: class Sales_item { public: // operations on Sales_item objects double avg_price() const; bool same_isbn(const Sales_item &rhs) const { return i 阅读全文
posted @ 2016-02-18 10:48 _No.47 阅读(524) 评论(0) 推荐(0)
摘要:有一个返回两个 string 形参中较短的字符串的函数: const string &shorterString(const string &s1, const string &s2) { return s1.size() < s2.size() ? s1 : s2; } 为这样的小操作定义一个函数 阅读全文
posted @ 2016-02-17 18:38 _No.47 阅读(314) 评论(0) 推荐(0)
摘要:形参的初始化与变量的初始化一样:如果形参具有非引用类型,则复制实参的值,如果形参为引用类型,则它只是实参的别名。 非引用形参: 普通的非引用类型的参数通过复制对应的实参实现初始化。当用实参副本初始化形参时,函数并没有访问调用所传递的实参本身,因此不会修改实参的值。 while 循环体虽然修改了 v1 阅读全文
posted @ 2016-02-17 16:37 _No.47 阅读(1131) 评论(0) 推荐(0)
摘要:在StackOverflow中看到一个提问“what's the difference between DLL's and LIB's?” 有如下回复值得参考: 回复一: 回复二: There are static libraries (LIB) and dynamic libraries (DLL 阅读全文
posted @ 2016-01-28 15:04 _No.47 阅读(411) 评论(0) 推荐(0)
摘要:VS的工程属性中我们常会设置Character Set: 为了支持Unicode编码,需要多字节与宽字节之间的相互转换。这里涉及两个函数: int WideCharToMultiByte( _In_ UINT CodePage, _In_ DWORD dwFlags, _In_ LPCWSTR lp 阅读全文
posted @ 2016-01-27 19:43 _No.47 阅读(845) 评论(0) 推荐(0)
摘要:Article 1:Loading Win32/64 DLLs "manually" without LoadLibrary() The most important steps of DLL loading are: Mapping or loading the DLL into memory. 阅读全文
posted @ 2016-01-27 18:06 _No.47 阅读(2129) 评论(0) 推荐(0)
摘要:数组名为何物? int main() { int number[] = { 1, 2, 3, 4, 5 }; int *pnumber = number; cout << sizeof(number) << endl; cout << sizeof(pnumber) << endl; system( 阅读全文
posted @ 2016-01-26 17:43 _No.47 阅读(281) 评论(0) 推荐(0)
摘要:什么是DLL:自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上 Windows操作系统中几乎所有的内容都由DLL以一种或另外一种形式代表着,例如显示的字体和图标存储在GDI DLL中、显示Windows桌面和处理... 阅读全文
posted @ 2015-11-11 17:35 _No.47 阅读(29034) 评论(0) 推荐(3)
摘要:如果我们有一个子函数,返回值是string类型对象: 那么我们在主函数中常使用char类型指针去接收它的返回对象: 当我们用: 输出p指向的字符数组时,会输出“sssssssssssssssssss”吗?答案是否定的: 我曾一度认为因为可以做类似如下的定义: 且可以输出正确的结果: 则上边的用p接收 阅读全文
posted @ 2015-10-23 10:04 _No.47 阅读(199) 评论(0) 推荐(0)
摘要:抛出问题:我在CPP文件中,打算输出一行阿拉伯字符:当试图运行时,会弹出以下提示:即便点击“是”,运行之后也是显示不出来的:为什么会出现这种情况?我们先拿txt文件做个解释:如果你在txt文件中输入阿拉伯文另存为ANSI格式后,再打开是这样的:但如果你另存为utf-8编码格式,就能正确显示:VS中的... 阅读全文
posted @ 2015-10-13 18:57 _No.47 阅读(6483) 评论(0) 推荐(1)
摘要:问题:上面是结构体中的成员,值得注意的是结构体的最后一个成员数组就不会显示错误。Why?我们写一个程序测试一下:当指定了数组大小为1的时候,发现b和c的地址是连续的:给b数组开辟了一个int大小的空间。所以如果不给素组限定大小,那么b和&c的地址就会指向同一处。就会提示错误:但如果b是结构体最后一个... 阅读全文
posted @ 2015-09-18 18:05 _No.47 阅读(1903) 评论(0) 推荐(0)
摘要:转载自:http://www.ccidnet.com/2010/0709/2110463.shtml1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型.2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参... 阅读全文
posted @ 2015-09-17 14:16 _No.47 阅读(2845) 评论(0) 推荐(0)
摘要:参考:http://greatverve.cnblogs.com/archive/2012/10/24/cpp-int-string.html 阅读全文
posted @ 2015-09-07 19:37 _No.47 阅读(169) 评论(0) 推荐(0)
摘要:参考:http://bbs.csdn.net/topics/370162233?page=1 阅读全文
posted @ 2015-09-07 18:45 _No.47 阅读(155) 评论(0) 推荐(0)
摘要:为什么会报这个错?因为strcpy这个函数不安全,即会造成栈溢出。在VS2013下如果使用strcpy有时候会报这个错误,解决方法是找到该项目的属性:在预处理定义中添加:_CRT_SECURE_NO_WARNINGS即可 阅读全文
posted @ 2015-09-06 11:05 _No.47 阅读(11605) 评论(0) 推荐(1)