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. VS2012 创建项目失败,,提示为找到约束。。。。

    首先查看 控制面板里已安装的更新 在Microsoft .NET Freamewofk 4.5 小 查看 是否有KB2833957和KB2840642这两个补丁(如下图)  如果有 卸载它 然后 下载 ...

  2. for循环语句之棋盘放粮食、百鸡百钱、纸张的折叠问题

    1.棋盘放粮食 ; ; i < ; i++) { ; ; j <= i; j++) { x = x * ; } lszl = lszl + x; } double zl = lszl * ...

  3. 键盘过滤第一个例子ctrl2cap(4.1~4.4)汇总,测试

    键盘过滤第一个例子ctrl2cap(4.1~4.4)汇总,测试 完整源代码 /// /// @file ctrl2cap.c /// @author wowocock /// @date 2009-1 ...

  4. 为什么国内的网盘公司都在 TB 的级别上竞争,成本会不会太高?(还有好多其它回复)

    作者:杜鑫链接:http://www.zhihu.com/question/21591490/answer/18762821来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 ...

  5. Qt写一个截屏工具(窗口透明)

    最近发现好多次打开QQ仅仅想用它来截屏 ⊙﹏⊙b汗 不如自己来写一个截屏工具,集成到自己的小工具箱里面 动手之前考虑一下要怎么实现,我考虑过的方案大概有下面两种  : 1. 监控全局鼠标事件 (真是“ ...

  6. HDU2191:悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)

    Problem Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品 ...

  7. ArduinoYun教程之配置Arduino Yun环境

    ArduinoYun教程之配置Arduino Yun环境 配置Arduino Yun 不管你使用前面介绍的哪种方式连接Arduino Yun.如今都能够配置你的Arduino Yun了.首先须要的是使 ...

  8. android的事件分发机制理解

    android的事件分发机制理解 1.事件触发主要涉及到哪些层面的哪些函数(个人理解的顺序,可能在某一层会一次回调其它函数) activity中的dispatchTouchEvent .layout中 ...

  9. jQuery Mobile 入门基础教程

    jQuery Mobile是jQuery在手机上和平板设备上的版本.jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架. jQue ...

  10. SQL - 将NULL设置为 NOT NULL

    在有些时候,我们在创建表的时候,会忘掉设置某一个列的属性,比如忘了设置为非空,但是默认情况下系统会自动的设置为NULL.这样我们该怎样通过语句设置呢?? 例如有一个表,其中的一个属性为WM CHAR( ...