1.autokeyword的用途

A:自己主动变量。能够自己主动获取类型,输出,类似泛型

B:自己主动变量,能够实现自己主动循环一维数组

C:自己主动循环的时候,相应的必须是常量

2.auto自己主动变量,自己主动匹配类型的案比例如以下:

注意:假设是在QT下执行上面的的程序须要加上C++11的相关配置(CONFIG += C++11)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

3.通过autokeyword自己主动循环一维数组的案例

#include<iostream>

#include<stdlib.h>

#include<iomanip>

usingnamespacestd;

voidmain()

{

//定义一维数组。以下的数组名是一个指针常量

intnum[10]
= { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

//通过循环遍历出数组

for
(autodata
:num)

{

cout
<<setw(5) <<data;

}

cout
<<endl;

//当变成二维数组之后,不能直接通过auto来输出

//auto自己主动循环begin endl;必须是一个数组的常量

doublenum2[2][5]
= { 1.0, 2.0, 3.0, 4.5, 5, 6, 7, 8, 9, 10 };

for
(autodata
:num2)//泛型C++语法。循环一维数组,是个常量

{

cout
<<data <<std::endl;

for
(inti
= 0;i < 5;i++)

{

std::cout<<setw(5)
<< *(data +i);

}

cout
<<endl;

}

system("pause");

}

执行结果例如以下:

4.关于头文件

在C++中,为了区分C++,C++中不使用.h文件头

5.C++注重类型。它是一种强类型语言,严格检查类型。

6.C++中的输出函数,宽字符输出,赋初值的方式,输出符,::域控制符

#include<iostream>  //在C++中,为了区分C++,C++中不使用.h文件头

#include<stdlib.h>

usingnamespacestd;

voidmain()

{

inta
= 5;

//C++中赋值:A变量名(数值) B:变量名=数值,通过这两种方式。

intb(5);

cout
<<a <<"
" <<b
<<endl;

//通过括号赋值

doublec(3.5);

cout
<<c <<endl;

//通过等号赋值

char
*pStr ="1234";

cout
<< *pStr <<"
" <<pStr
<<endl;

//通过括号赋值

char
*str("china");

cout
<< *str <<"
" <<str
<<endl;

//宽字符,汉子,棒子文

wchar_t
*str2(L"china");

wcout
<< *str2 <<"
" <<str2
<<endl;

system("pause");

}

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

#include<iostream>

voidmain()

{

//输出符
<<

//std命名空间

//::域控制符

std::cout
<< "hello world";

system("pause");

}

7.一个文件里使用另外一个文件里声明的变量的时候,C++要求显示的加上externkeyword调用这个全局变量。

8.调用命名空间中的变量已经命名空间中的函数

A:有名命名空间

#include"iostream"

#include"stdlib.h"

namespacemyspace

{

inta(15);

voidprint()

{

std::cout
<< "锄禾日当午"
<< std::endl;

}

}

namespacemyspaceA

{

inta(25);

voidprint()

{

std::cout
<< "AAAAAAAAAAAA" <<std::endl;

}

}

voidmain()

{

inta(5);

//假设想不被上面的a变量影响,而直接訪问命名空间

//中的变量,这里要加上命名空间名

std::cout
<< "myspace a = " <<myspace::a
<< std::endl;

//调用myspaceA中定义的变量a

std::cout
<< "myspaceA a = " <<myspaceA::a
<< std::endl;

std::cout
<< "main a = " <<a
<<std::endl;

std::cout
<< std::endl;

//调用命名空间中的函数

myspace::print();

myspaceA::print();

system("pause");

}

执行结果例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

B:无名命名空间

#include"iostream"

//没有命名的命名空间中的參数能够直接调用

namespace

{

inta(3);

voidprint()

{

std::cout
<< "gogogo";

}

}

voidmain()

{

//说明没有命名的命名空间能够直接调用a

std::cout
<< a <<std::endl;

print();

getchar();

}

输出结果是:

3

gogogo

C:命名空间中全部的数据,函数。类,对象都是共同拥有的,结构体内部的默认是共同拥有的。

案比例如以下:

#include<iostream>

//namespace全部数据,函数,类,对象都是共同拥有

namespacerunmove

{

inty(5);

int(*padd)(int,int);//函数指针接口

inty1(5);

classmyclass

{

//类中的变量等默认是私有的

public:

inta;

};

}

//相应上面的函数指针

intadd(inta,intb)

{

returna
+b;

}

intaddp(inta,intb)

{

std::cout
<< a <<"
" <<b
<<std::endl;

returna
+b;

}

//结构体默认是透明的(public的)

structMyStruct

{

intb;

private:

inta;//是私有

};

voidmain()

{

//namespace全部数据,函数,类,对象都是共同拥有

MyStructstruct1;//结构体内部默认公有

struct1.b
= 20;

std::cout
<< struct1.b
<< std::endl;

std::cout
<< runmove::y
<< " " <<runmove::y1
<< std::endl;

runmove::padd
= addp;

std::cout
<< runmove::padd(5,
6) << std::endl;

getchar();

}

9.使用usingkeyword的时候。必须在命名空间的后面

关于作用域:

A:在函数体内使用using的时候,using的作用域是从using这行代码開始到函数体结束。

B:函数体外使用using的时候。作用域是从using这行代码開始到文件本文件结尾。

案例说明:

#include<iostream>

#include<stdlib.h>

namespacemydata

{

inta(6);

}

namespaceyourdata

{

inta(8);

}

//假设想使用mydata这个明明空间,而且使用usingkeyword,这时候要把using放

//在mydata命名空间后面

usingnamespacemydata;

usingnamespaceyourdata;

//using假设变量重名,会出现不明白错误,加上命名空间修饰符

voidgo()

{

//命名空间假设在块语句内部,作用域是定义開始到语句结束

std::cout
<< mydata::a
<< std::endl;

}

//using namespacemydata;//作用域为从代码開始到结束

voidmain()

{

std::cout
<< mydata::a
<< std::endl;

std::cout
<< yourdata::a
<< std::endl;

system("pause");

}

10.命名空间的嵌套,为命名空间起别名,命名空间的拓展

#include<iostream>

namespacerunrunrunrun

{

inta(10);

char
*str("gogogo");

namespacerun  //命名空间的嵌套

{

inta(9);

}

}

//命名空间的拓展

namespacerunrunrunrun

{

int y(5);

//int a(15);重定义错误

}

//注意这里的r就是别名,而不是后者

namespacer
=runrunrunrun;//给命名空间起一个别名

voidmain()

{

//命名空间能够嵌套

std::cout
<< r::run::a
<< std::endl;

std::cout
<< r::y
<< std::endl;

std::cout
<< r::a
<< std::endl;

system("pause");

}

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

11.关于默认參数问题

A:默认參数必须放在右边

B:默认參数中间不同意出现不默认的

#include<stdio.h>

#include<stdlib.h>

#include<iostream>

//默认參数必须放在右边

//默认參数中间不同意出现不默认的

voidprint(intc,inta
= 1,intd
= 2,intb
= 3)

{

std::cout
<< a <<b
<<c <<std::endl;

}

voidprintf(doublec)

{

std::cout
<< "hello,world" <<std::endl;

}

voidmain()

{

//print(1,2,3);

//函数指针没有默认參数,必须所有输入数据

void(*pt1)(intc,inta,intd,intb)
=print;

pt1(100,1,2,3);//函数指针调用。没实用默认的

print(100);

system("pause");

}

C++中 auto自己主动变量,命名空间,using作用以及作用域的更多相关文章

  1. 《Effective Modern C++》翻译--条款2: 理解auto自己主动类型推导

    条款2: 理解auto自己主动类型推导 假设你已经读过条款1关于模板类型推导的内容,那么你差点儿已经知道了关于auto类型推导的所有. 至于为什么auto类型推导就是模板类型推导仅仅有一个地方感到好奇 ...

  2. C++ 中 auto 与 decltype 的用法与区别

    最近在恶补 C++ 知识的时候,学习到了一些 C++11 标准的新特性,利用这些新特性,我们能够更快地提高编程效率,从而实现我们的目标,在此特意记下学习过程中所学习到的一些东西,方便日后的回顾和复习. ...

  3. 数据库中暂时表,表变量和CTE使用优势极其差别

    1 在写SQL时常常会用到暂时表,表变量和CTE,这三者在使用时各有优势: 1. 暂时表:分为局部暂时表和全局暂时表. 1.1局部暂时表,创建时以#开头,在系统数据库tempdb中存储. 在当前的链接 ...

  4. 2018.8.9 python中的动态传参与命名空间

    主要内容: 1.函数参数 ----动态传参 2.名称空间与作用域 3.函数的嵌套 4.global,nonlocal关键字 一.函数参数 ------动态传参 形参的第三种:动态传参 动态传参分为两种 ...

  5. 第8.34节 《Python类中常用的特殊变量和方法》总结

    本章介绍了Python类中常用的特殊变量和方法,这些特殊变量和方法都有特殊的用途,是Python强大功能的基石之一,许多功能非常有Python特色.由于Python中一切皆对象,理解这些特殊变量和方法 ...

  6. 错误: 从内部类中访问本 地变量vvv; 需要被声明为最终类型

    从github 下载了源码, 进行编译, 出现了下面的错误 E:\downloads\ff\elasticsearch-master\elasticsearch-master>GRADLE :b ...

  7. Spark中Lambda表达式的变量作用域

    通常,我们希望能够在lambda表达式的闭合方法或类中访问其他的变量,例如: package java8test; public class T1 { public static void main( ...

  8. Ubuntu中配置Java环境变量时,出现command not found问题解决记录

    百度出Ubuntu中配置Java环境变量时,在利用sudo gedit /etc/profile 对profile编辑后, 在terminal中输入 sudo source /etc/profile, ...

  9. linux内核中的每cpu变量

    一.linux中的每cpu变量 看linux内核代码的时候,会发现大量的per_cpu(name, cpu),get_cpu_var(name)等出现cpu字眼的语句.从语句的意思可以看出是要使用与当 ...

随机推荐

  1. TCP之超时和重传

    RTT:往返时间:  RTO:Retransmission Timeout即超时重传时间: 关键点在于:超时和重传间隔的策略,即怎样确定超时间隔和重传间隔: TCP中的四个定时器:2MSL定时器:重传 ...

  2. Cocos2dx项目移植Android平台

    链接地址:http://blog.csdn.net/iuncle/article/details/24772183 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.Classes目录下存放. ...

  3. Javascript 运动应用 02

                                                                         JS运动应用   多个物体同时运动 例子:多个Div,鼠标移入 ...

  4. 7.2.1 生成1~n的排列(全排列)【STL__next_permutation()_的应用】

    #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> ...

  5. Chapter 12 外观模式

    外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个模式使得这一子系统更加容易使用. 外观模式三个阶段: 首先,在设计初期阶段,应该要有意识的将不同的两个层分离. 其次,在 ...

  6. Qt对话框_模态/非模态

    对话框在Qt GUI应用程序中有着广泛的用途,对话框有模态.非模态两种情况. 对于参数选择的对话框,一般用模态对话框:对于显示或查看某些内容的对话框,一般用非模态对话框. 对话框类QDialog,官方 ...

  7. [概率dp] ZOJ 3822 Domination

    题意: 给N×M的棋盘.每天随机找一个没放过棋子的格子放一个棋子 问使得每一个每列都有棋子的天数期望 思路: dp[i][j][k] 代表放了i个棋子占了j行k列 到达目标状态的期望 然后从 dp[n ...

  8. CF(435D - Special Grid)dp

    题目链接:http://codeforces.com/problemset/problem/435/D 题意:求三角形个数,三个点必须的白点上,而且三条边必须是横线,竖线或对角线,三条边上不同意出现黑 ...

  9. Arduino 入门程序示例之一排 LED(2015-06-11)

    概述 最简单的一个 LED 的实验之后,自然是增加几个 LED,咱排成一排来玩吧.最后,再把一排的 LED 排成一个 8 字来玩——七段数码管. 示例程序 流水灯 第一个出场的肯定是经典的流水灯,也叫 ...

  10. ActivityGroup相关--getLocalActivityManager() 以及intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)用法

    ActivityGroup简介 1.ActivityGroup的核心就是继承了该类,能够通过getLocalActivityManager()得到一个LocalActivityManager 如,Lo ...