![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 82
volant_hoo
迷茫的程序员
展开
-
虚函数与继承(1)
测试程序如下:#include iostream>using namespace std;class A...{public: A() ...{ cout "1--new(A)" endl; } virtual void foo() ...{ cout "2--A::foo()" endl; } vir原创 2006-07-18 10:06:00 · 428 阅读 · 0 评论 -
共享内存
进程间通信知识了解不少,今天第一次正式使用,就出问题了。这里选用的是共享内存存储数据,共享数据为一数组,大小动态分配,使用文件映射内存供不同进程进行访问。因为数组大小动态分配,在内存中存储有两个辅助数据,数组大小和当前使用大小,结构如下:struct SharedArray{ int used; int size; int *array;} 在分配内存时,大原创 2009-05-11 21:18:00 · 955 阅读 · 0 评论 -
标准C函数:strncpy
前两天看libsmi源代码,里面对strncpy函数进行了封装,感觉有些缺陷,虽然内部使用的函数,满足要求就可以了,但想了想发现自己它了解的也不是很多。关于strncpy,《C程序设计语言》中是这样介绍的:“char *strncpy(s, ct, n),strncpy用于把字符串ct中最多n个字符拷贝到字符串s中,并返回s。如果ct中少于n个字符,那么就用’/0’补充。”写了一个简单的程原创 2009-05-11 15:04:00 · 3043 阅读 · 2 评论 -
从一到面试题谈起
一道面试题最近看CSDN,又谈到一道面试题,大致是“不使用比较运算符和库函数比较两个整数的大小”。这种题看似简单,实则深藏玄机,考得不只是技巧还有很多基础知识。第一种解法第一种解法是楼主给出的,很简单:(int)(((long)a – (long)b)>>>63)代码是Java的,解题的思路也很简单,原理是a-b>=0等同于a>=b而和0的比较可以取符号位进行判断,如果差值为非原创 2009-05-11 21:27:00 · 777 阅读 · 0 评论 -
搭建cppunit单元测试环境
今天参考surt的“[教學]MinGW+Cygwin+CppUnit用Eclipse撰寫CppUnit測試程式 [精華]”一文,搭建了一个cppunit的单元测试环境。做了几年C/C++开发,一直想要把单元测试加上,因为工作安排,做了一小段时间的java,更坚定了搭建c++单元测试环境的想法,但不得不说cppunit的配置实在是有些繁琐,MinGW的安装还好说,cygwin安装实在是太慢,可怜原创 2008-06-02 10:30:00 · 2154 阅读 · 0 评论 -
C++测试程序(1)——测试C++对象作为函数参数和返回值的内存分配
一直使用C,由于项目需要,学习一些C++作为补充。由于开始的习惯,拿着对象都是指针进,指针出,虽然没有多少问题,但经常还是感觉别扭。网上找了找,没有看见写的特别清楚和完全的(可能比较分散),这里写个测试程序辅助理解。测试程序如下:#include iostream>using namespace std;class Test...{public: Test(int x, int原创 2008-05-19 15:16:00 · 776 阅读 · 0 评论 -
gtest(google的c++单元测试)试用
google开源了c++单元测试框架,真让人兴奋。安装的过程比较简单,在eclipse+mingw+cygwin下很easy就搞定了。使用也很容易,按照sample不用看文档也能很快上手。过程就不多少了,记点东西备忘。断言:ASSERT_TRUE(condition); EXPECT_TRUE(condition); condition为真ASSERT_FALSE(condition); E原创 2008-08-01 12:31:00 · 2267 阅读 · 0 评论 -
虚函数与继承(3)
#include iostream>#include vector>using namespace std;inline void print(char *msg)...{ cout " " msg endl;}class A...{public: virtual void foo1() ...{ print("A:v_foo1"); } vo原创 2008-05-06 14:07:00 · 355 阅读 · 0 评论 -
虚函数与继承(2)
#include iostream>#include vector>using namespace std;inline void print(char *msg)...{ cout " " msg endl;}class A...{public: virtual void foo1() ...{ print("A:foo1"); }原创 2008-04-29 12:57:00 · 393 阅读 · 0 评论 -
GCC C语言扩展(1)
看开源的代码中发现了一些静态函数声明后有如下内容:__attribute__ ((constructor))这是gcc的扩展属性,文档中说明如下:The constructor attribute causes the function to be called automatically before execution enters main (). Similarly, t原创 2009-05-11 21:14:00 · 587 阅读 · 0 评论