//范磊C++ 第2章
//这章我觉得最主要的是:1, 命名空间 namespace 作用; 2,std 的作用.
#include "stdafx.h" //这个#include "stdafx.h"和#include "iostream" 好像有顺序的吧?反过来放,先写#include "iostream"就错了?不明白.
#include "iostream" // iostream 是一个标准库,类似C的 stdio.h 头文件的作用.
int fun1() //2.1简单的屏幕输出小工具
{
std::cout << "I like C++!
" ; //cout是C++的标准函数库里面的一个对象,后面接着"<<", 符号后面所有内容都输出到屏幕.
//类似C的 printf();
return 0;
}
int fun2() //2.2输出语句的使用
{
std::cout << "五年级一班数学成绩表(有std::)
" ;
std::cout << "首先是第一名徐帆的成绩: " << 100; // " " 是一个制表符,和C一样的用法.
std::cout << std::endl; // endl 差不多等同
的作用,只是 endl 会马上刷新内容.
std::cout << "其次是第二名张友的成绩: " << 90+9; //输出的值可以用一个表达式,输出的结果是表达式的值.
std::cout << std::endl;
std::cout << "最后是末一名林杰的成绩: " <<(float) 10/8; //同样,输出小数时,可以直接给出运算表达式就OK了.记得要加上(float)
std::cout << std::endl; //如果不加上(float)的话,结果只取整数部分,小数部分丢弃
return 0;
}
int fun3() //2.3std::介绍 标准库(standard library),简写成stdlib 再简写成std.说白了,std就是标准库的别名.
{
using std::cout; //告诉编译器,我现在使用的cout是属于std里面的cout,即使其他地方有cout也不会用到.
//我输入的 cout 的含义就等同于输入了 std::cout了,因为总是输入 std::cout 太麻烦了
using std::endl; //与上同理.
//using namespace std; //这样用也可以,但是最好使用 "using std::cout;" 这样的类型.
cout << "五年级一班数学成绩表(无std::)
" ;
cout << "首先是第一名徐帆的成绩: " << 100;
cout << endl;
cout << "其次是第二名张友的成绩: " << 90+9;
cout << endl;
cout << "最后是末一名林杰的成绩: " <<(float) 10/8;
cout << endl;
return 0;
}
// 2.5 重名问题
namespace a //报错:a namespace definition must appear either at file scope or immediately within another namespace definition
{ //命名空间要放在"全局空间",也就是放在main外面,不属于任何一个函数的.
int b = 5 ; //必须定义与赋值在同一行代码,如果不是同一行代码的话会出错.
//b = 5; //error C2501: 'b' : missing storage-class or type specifiers 和error C2086: 'b' : redefinition
}
namespace c
{
int b = 8;
//b = 8;
}
int fun5()
{
int b;
b = 9;
std::cout << b <<" "<< a::b <<" "<< c::b << std::endl ;
return 0;
}
int main(int argc, char* argv[])
{
fun1(); //2.1 简单的屏幕输出小工具
std::cout<<"---------------------------------
" ;
fun2(); //2.2 输出语句的使用
std::cout<<"---------------------------------
" ;
fun3(); //2.3 std::介绍
std::cout<<"---------------------------------
" ;
//fun4(); //2.4 无例子
std::cout<<"---------------------------------
" ;
fun5(); //2.5 重名问题
std::cout<<"---------------------------------
" ;
//fun6(); //2.6 注释(略)
return 0;
}