近期语法使用小结

1、typename 在C++11中 代替 class用于声明标示符为类型,class主用于声明或定义类类型和强枚举形式。另外typename增加了类似于 #define 这样的宏定义功能,不过不是简单的字符替换,而是高于字符替换级别,将字符1声明为类型标示符去声明字符2为变量。


2、unable to cache user root

sudo 失败, 普通用户。 重装,使用英文账号,并且不要登陆AppleID,这样就可以建立管理员账户了。不过目前使用速度不流畅,等过了11月上班后再整理这些硬件细节。


3、一个大工程中选择清理的时候一定要小心,不要全部清理掉,要不然是在浪费自己的时间等待编译。


4、变量声明即初始化。只不过声明时初始化调用的是默认的初始化方式,而构造初始化则是显示调用了构造函数或者再次调用复制构造函数去初始化一个对象,得到一个比较确定的初值。


12、lambda和auto使用继续使用,auto确实方便,只要控制用于局部区域变量可读性也是很强的。

<pre name="code" class="cpp">
// TestLanguage.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"
#include <vector>
using namespace std;
#include <iostream>
#include <algorithm>


void testVectorSwap()
{
vector<string> a;
a.push_back("I'm vl");


vector<string> b;
b.push_back("V2");
b.push_back("I'm !");


auto c =  [](vector<string> temp) ->void
{
for_each(temp.begin(),temp.end(),[](string elem) ->void
{
cout<<elem.c_str()<<"\t";
});
cout<<endl;
};


c(a);
c(b);
//采用的使移动交换的形式,只是把底层的数据指针交换了。
a.swap(b);
c(a);
c(b);
//两种操作方式,另外一种则是(n,value)的形式,主要用来常量值,下面这种主要用于复制其他容器
b.assign(a.begin(),a.end());
c(a);
c(b);
}


class A
{
public:
void show()
{
cout<<"A"<<endl;
}
};


class B : public A
{
public:
void show(int )
{
cout<<"B"<<endl;
}


};


template<typename T>
class C
{
public:
template< typename Iter>
void set(Iter begin);
};


//类成员模板
template<typename T>
template< typename Iter>
void C<T>::set(Iter begin)
{
cout<<"ok"<<endl;
}






int _tmain(int argc, _TCHAR* argv[])
{

testVectorSwap();


B b;


A& a = b;


a.show();


b.show(1);


C<int>c;
c.set(a);


return 0;
}

</pre><p></p><pre>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值