存档

文章标签 ‘C++’

C++ Template Non-type Parameter

2013年1月5日 没有评论

C++的template可以传入普通的参数,像给普通函数传入参数一样。可能平时并不多见,但这是完全可以的,因为好久没看这方面的东西,对这样的写法表示大为吃惊。也难怪,笔记本散热不好,《Effective C++》被我拿来垫笔记本了,而《More Effective C++》一直放在枕头旁边……翻了一下,书上都有提及这样的写法。

Besides the template arguments that are preceded by the class or typename keywords , which represent types, templates can also have regular typed parameters, similar to those found in functions. As an example, have a look at this class template that is used to contain sequences of elements:

It is also possible to set default values or types for class template parameters.(设置参数的默认值也是可以的。)[......]

分类: C/C++ 标签: , , ,

复数集合(优先队列)

2011年8月31日 没有评论

题目描述
一个复数(x+iy)集合,两种操作作用在该集合上:
1. Pop 表示读出集合中复数模值最大的那个复数,如集合为空输出empty,不为空就输出最大的那个复数并且从集合中删除那个复数,再输出集合的大小SIZE;
2. Insert a+ib 指令(a,b表示实部和虚部),将a+ib加入到集合中 ,输出集合的大小SIZE;
最开始要读入一个int n,表示接下来的n行每一行都是一条命令。
输入
输入有多组数据。
每组输入一个n(1小于等于n小于等于1000),然后再输入n条指[......]

继续阅读

分类: 其他题解 标签: , ,

又是C++空类

2011年5月6日 8 条评论

之前在博客也写过一些空类相关的文章,记得当时候还有一个问题没有想明白,于是在经过了一番思索。空类问题似乎也是面试中经常涉及的问题,还是先看题目吧:

// Author: 代码疯子
// Blog: http://www.programlife.net/
// C++空类以及sizeof问题
#include <iostream>
using namespace std;
 
class Empty
{
public:
char arr[0];
[......]

继续阅读

分类: C++编程 标签: , , ,

Borland C++入口点特征码

2011年3月25日 没有评论

Borland C++入口点特征码:(一进去就是一个跳转)

00401000 > $ /EB 10 JMP SHORT ImageWat.00401012
00401002 |66 DB 66 ; CHAR ‘f’
00401003 |62 DB 62 ; CHAR ‘b[......]

继续阅读

分类: 逆向调试 标签: , ,

error C2059: syntax error : ‘string’

2010年12月28日 6 条评论

今天在编译驱动代码的时候出现了一个错误,error C2059: syntax error : ‘string’,有点让人误解。网上搜了一下,发现是使用了extern “C”造成的。自己挤出不好吧。只有当在C++里面的时候,引用外部函数才需要extern “C”来声明,否则直接声明函数即可。另外,我们可以方便的通过判断是否定义__cplusplus来使得代码的可移植性更好,可以按照下面的方法来声明函数:

1
2
3
4
5[......]

继续阅读

分类: C语言 标签: , , ,

C++ const成员函数

2010年12月10日 4 条评论

任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性。
注意const要放在成员函数参数列表的括号()的后面,大括号之前。下面是一段简单的测试代码:

//Coded by 代码疯子
#include <iostream>
using namespace std;
 
class Demo
{
private:
int value;[......]

继续阅读

error C2723:’virtual’ storage-class specifier illegal

2010年11月28日 没有评论

错误全称:error C2723: 'funname' : 'virtual' storage-class specifier illegal on function definition。
错误原因:C++类头文件中使用了virtual声明静态方法,在Cpp源文件中定义该静态函数时再次使用了virtual修饰。
解决方案:Cpp源文件定义静态成员函数时不再需要virtual修饰。或者定义直接放在h头文件中。
在写简单工厂模式中遇到了这个问题,因为产品类要实现多态[......]

继续阅读

error C2724:’static’ should not be used on member functions

2010年11月28日 1 条评论

错误全称:error C2724 : 'funname' : 'static' should not be used on member functions defined at file scope。
错误原因:C++类头文件中使用了static声明静态方法,在Cpp源文件中定义该静态函数时再次使用了static修饰。
解决方案:Cpp源文件定义静态成员函数时不再需要static修饰。或者定义直接放在h头文件中。
在写简单工厂模式中遇到了这个问题,因为Facto[......]

继续阅读

再谈面试中的sizeof

2010年11月14日 4 条评论

上面两篇文章谈到了sizeof对C++空类的相关知识点,让我想起了以前做过的一道题目,也是考sizeof的。题目如下:

//Provided by 代码疯子
//Blog: http://www.programlife.net/
#include <stdio.h>
 
int main()
{
int i = 0;
printf("%d %d\n", i++, sizeof(i++));
[......]

继续阅读

分类: C++编程 标签: , ,

C++空类sizeof字节数(二)

2010年11月14日 3 条评论

下一个面试题:说明输出结果,并解释。

#include <iostream>
using namespace std;
 
class A
{
private:
char array[0];
};
 
class B{};
 
class C : public B{};
 
int main()
{
cout << &quot[......]

继续阅读

分类: C++编程 标签: , ,