visual C++ 2011-5-7
2011-05-09 22:18 Clingingboy 阅读(453) 评论(0) 编辑 收藏 举报
看深入浅出MFC看到的一些细节问题…技术无法跨越,慢慢跟进
一.创建结构体数组
struct tagDemo{
int a;
char b;
};
int main()
{
struct tagDemo a[]={1,'a',3,'b'};
return 0;
}
二.#deinfe中的#、## 和 #@
http://www.cnblogs.com/dust/archive/2008/04/24/1169498.html
#define ConCat(x, y) x ## y;
int main()
{
char str[]= ConCat("aa","bb");//aabb
return 0;
}
三.struct中的static变量
http://blog.csdn.net/LuckyDan61/archive/2010/05/10/5576367.aspx
typedef struct with_static
{
int a;
static const int b = 1;
}with_static;
c++可以,c不可以
四.#define取指针
#define RUNTIME_CLASS(class_name) (&class_name)
int main()
{
Demo a;
Demo *b=RUNTIME_CLASS(a);
Demo *c=&a;
return 0;
}
五.用宏定义类成员
很动态...之前很难理解为什么宏里面还会有一个public…
#define DECLARE_DYNAMIC() \
public: \
int add(int a,int b){ return a+b; };\
class Demo
{
DECLARE_DYNAMIC();
};
int main()
{
Demo demo;
int num=demo.add(1,2);
return 0;
}
六.在结构体中定义函数
应该也c++可以,c不可以
int tagDemo::foo(int a)
{
return a+2;
}
int main()
{
struct tagDemo tag;
int num=tag.foo(1);
return 0;
}
七.结构体中的构造函数
c++中的struct已然变成了类了.
struct tagDemo{
tagDemo();
int a;
char b;
int foo(int a);
};
tagDemo::tagDemo()
{
a=1;
b='b';
}
八.类的静态数据成员初始化
需要在类外部初始化(且只能初始化一次),只有初始化后才可以修改数据成员…这个规矩比较烦
class Demo
{
public:
static int num;
};
int Demo::num=0;
int main()
{
Demo::num=2;
return 0;
}
九.静态数据成员指针
注意不要被::迷惑,解析从右边开始
Demo::num=2;
int *num=&Demo::num;
参考:http://blog.csdn.net/celeil/archive/2008/04/24/2325239.aspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2007-05-09 [转]强悍!情书居然能写得如此专业
2006-05-09 学习Professional ASP.NET 2.0(三)