C/C++基础
文章平均质量分 60
tianshangyikexing
这个作者很懒,什么都没留下…
展开
-
typedef struct 之思考
typedef struct _Node { int data; struct _Node *next; }Node, *NodePtr;struct _Node *ptr等效NodePtr ptrNodePtr ptr;这里ptr是指向Node类型的指针原创 2012-07-08 17:14:55 · 337 阅读 · 0 评论 -
函数返回值—返回局部变量
看看下面的程序的输出: #include char *returnStr() { char *p="hello world!"; return p; } int main() { char *str; str=returnStr(); printf("%s\n", str); return转载 2012-12-24 10:57:54 · 397 阅读 · 0 评论 -
返回局部变量的问题
函数返回局部变量,是返回局部变量的值。但指针(或地址)是一种特殊的值,所以返回局部指针变量需要特别注意。正确情况下,作为函数返回值的局部指针,其所指向对象的作用域应该是调用者作用域、全局或静态常量区;指向栈空间对象的指针作为返回值,存在潜在的错误。1.返回局部值变量 int num(void) { int a; return a; } 函数返回时转载 2012-12-24 10:47:53 · 354 阅读 · 0 评论 -
关于拷贝构造函数和赋值操作重载函数访问同类引用参数的私有变量的疑问
#include using namespace std; class T {public: T(){a = 11;} int Get() const{return a;} private: int a;};class Test{public: Test(int a):m_a(a){} Test(const Test &t){m_转载 2012-12-24 10:14:05 · 532 阅读 · 0 评论 -
CScrollView中画图问题
问题描述:定义继承自CScrollView的类,在该类中进行画图,出现了一些问题: 拖动滚动条,图像部分随之移动,但是被边框覆盖过再次被拉出来后的部分没有显示了。问题分析:该问题出现是因为矩形框坐标设置不当。出问题的时候,准备被画的矩形坐标同当前客户区大小关联,也即是使用了 CRect rcClient;GetClientRect(&rcClient);pDC->DPt原创 2012-11-13 17:44:21 · 847 阅读 · 0 评论 -
CScrollView::SetScrollSizes
Call SetScrollSizes when the view is about to be updated. //当视图准备被更新的时候调用该函数void SetScrollSizes( int nMapMode, SIZE sizeTotal, const SIZE& sizePage = sizeDefault, const SIZE&翻译 2012-11-09 10:22:54 · 3013 阅读 · 0 评论 -
c++ 之类的前置声明
刚开始学习c++的人都会遇到这样的问题:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就成了这样:一编译,就出现了一个互包含的问题了,这时就有人跳出来说,这个问题的解决办法可以这样,在a.h文件中声明类B,然后使用B的指针。然后,问题就解决了。但是,有人知道问题是为什么就被解决的吗,也就是说,加了个前置声明为什么转载 2012-11-05 09:45:47 · 356 阅读 · 0 评论 -
CString 与 double 互转
1、CString To doubledouble dSum2;#ifdef UNICODEchar szNum[100];wcstombs(szNum, m_strResult.GetBuffer(0), sizeof(szNum) / sizeof(szNum[0])); dSum2 = atof(szNum); #elsedSum2 = atof(m_strResult.Ge原创 2012-10-19 09:32:41 · 622 阅读 · 0 评论 -
printf
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。 printf()函数的调用格式为: printf("", ); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字转载 2012-10-19 10:15:01 · 475 阅读 · 0 评论 -
GetBuffer--ReleaseBuffer问题
CString CConLog::ReadConfig(CString section,CString key){ GetPrivateProfileString(section,key,_T(""),m_sReadPath.GetBuffer(MAX_PATH),MAX_PATH,m_sIniPath); m_sReadPath.ReleaseBuffer();//不释放出错 r转载 2012-09-11 11:16:26 · 448 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点:strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。转载 2012-07-12 17:51:00 · 312 阅读 · 0 评论 -
关于引用
2、什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因转载 2012-07-12 18:17:25 · 435 阅读 · 0 评论 -
思考:((*strDest++=*strSrc++)!='\0');
((*strDest++=*strSrc++)!='\0');哪儿前辈可以解释下里面具体执行的步骤呢? 对于这样的表达式,我们通常会有这样三种看法: 1.这种写法不但没有错误(当然也没有BUG),而且写法紧凑。 2.这种写法虽然没有错误,但是不够直观,理解起来有点麻烦,可能还会导致理解错误。 3.这种写法中存在未定义的地方,执行结果可能是错误的。 粗略来看,这三种说法转载 2012-07-12 10:10:53 · 680 阅读 · 0 评论 -
成员函数的重载、覆盖与隐藏
8.2成员函数的重载、覆盖与隐藏 成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。 8.2.1 重载与覆盖 成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是:转载 2014-04-11 10:38:32 · 500 阅读 · 0 评论