c++备忘录

本文探讨了C++编程中的几个关键概念:1) 模板类的模板成员函数的外部定义,需指定两次模板参数;2) 宏定义中的`#`用于字符串化,`##`用于拼接,`#@`在GCC中不支持;3) 匿名命名空间的作用,以及如何在版本控制中利用它;4) 使用`#pragma pack(n)`进行内存对齐的控制。了解这些细节能够帮助开发者更好地掌握C++编程。
摘要由CSDN通过智能技术生成

#1.模板类的模板成员函数

template <typename type1>

class C {

public:

template <typename type2>

void f();

}

如果需要在类外定义函数f时,要这样写:

template<typename type1, typename type2>

void C<type1>::f() {...}

而不能写成

template<typename type1>

template<typename type2>

void C<type1>::f() {...}

#2.宏定义中的“#”,“##”,“#@”用法

“#”用于将宏参数转化为字符串,即在宏参数的两边加上双引号。例如:

#define STR(x) #x
int abc = 1;
cout << STR(abc) << endl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值