android高级应用开发 pdf,12_C 高级主题 Android移动应用开发.pdf

本文深入探讨了C++11中的新特性,包括统一的初始化方式如数组、向量、映射和字符串的初始化,以及自动类型推断关键字`auto`的应用。通过实例展示了`auto`如何简化变量声明,并演示了`decltype`关键字用于获取表达式类型的用法。此外,还介绍了类成员变量的默认初始化和函数返回值的直接初始化。这些特性提高了代码的简洁性和效率。
摘要由CSDN通过智能技术生成

程序设计与算法(三)

C++面向对象程序设计

1

2

C++11特性

九寨沟

统一的初始化方法

int arr [3]{1, 2, 3};

vector iv{1, 2, 3};

map mp{{1, "a"}, {2, "b"}};

string str{"Hello World"};

int * p = new int[20]{1,2,3};

struct A {

int i,j; A(int m,int n):i(m),j(n) { }

};

A func(int m,int n ) { return {m,n}; }

int main () { A * pa = new A {3,7}; }

4

成员变量默认初始值

class B

{

public:

int m = 1234;

int n;

};

int main()

{

B b;

cout << b.m << endl; //输出 1234

return 0;

5

}

auto关键字

用于定义变量,编译起可以自动判断变量的类型

auto i = 100; // i 是 int

auto p = new A(); // p 是 A *

auto k = 34343LL; // k 是 long long

map > mp ;

for( auto i = mp.begin (); i != mp.end (); ++i)

cout << i->first << "," << i->second ;

//i的类型是: map >::iterator

6

auto关键字

class A { };

A operator + ( int n,const A & a)

{

return a;

}

template

auto add(T1 x, T2 y) -> decltype(x + y) {

return x+y;

}

auto d = add(100,1.5); // d是double d=101.5

auto k = add(100,A()); // d是A类型

7

decltype 关键字

求表达式的类型

int i;

double t;

struct A { double x; };

const A* a = new A();

decltype(a) x1; // x1 is A *

decltype(i) x2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值