(7)第3章的开始

第二章介绍的内置类型是由C++语言直接定义的。这些类型,比如数字和字符,体现了大多数计算机硬件本身具备的能力,标准库定义了另外一组更具有更高级性质的类型,它们尚未直接实现到计算机硬件中————————————————————这段没看懂,P74

命名空间的using声明(头文件最好不用using声明)

std::cin

=编译器从作用域操作符(::)左侧名字所示的作用域中寻找右侧那个名字=要使用命名空间std中的名字cin。

每次使用cin都要声明std很繁琐,现在介绍一种最安全的方法:using声明(后面还会介绍另一种)

using std::cin;

=using声明,当我们使用名字cin时,从命名空间std中获取她(要注意,每个名字都需要独立的using声明!)

关于格式,和普通的声明变量不太一样:

using std::cout,std::cin;           //error

using std::cin;using std::cout;using std::endl; // Ture

标准库类型string

string是可变长的字符序列,其定义在std命名空间。

note:C++标准对库类型所提供的操作做了详细规定(意味着有最好的使用指南,不需要你去猜),另一方面也对库的实现者做出一些性能上的需求(这些实现者基本上是领域牛人,可以基本相信),因此,标准库类型对于一般应用场合来说有足够效率(注意,只是效率,别的兼容性什么的不是重点)

初始化方法:

#include <iostream>
#include <string>
using std::cout; 
using std::endl;
using std::string;
int main()
{
	//默认初始化,s1=空串
	string s1;
	cout << s1 << endl;
	//s2是s1的副本,si是空串所以s2也是空串
	string s2(s1);
	cout << s2 << endl;
	//和s2的初始化一样,只不过s2是用初始化列表初始化的
	string s3 = s1;
	cout << s3 << endl;
	//s3是字面值value的副本(value这个字面值最后那个空字符没有拷贝到s4).
string s4("value"); cout << s4 << endl; //等价于s4的初始化,只不过s4是初始化列表初始化的。 //不能用花括号初始化列表初始化string string s5 = "value"; cout << s5 << endl; //s6初始化为连续10个字符c组成的串 string s6(10, 'c'); cout << s6 << endl; system("pause"); return 0; }

这有2个疑问,s4有没有一个空字符在最后面(即s4里有的空字符不一定是复制过去的而是定义时自己加的)?string定义的字符串末尾都有空字符?

/*验证:
*1.是否string定义的字符串都有一个空字符在最后
*2.拷贝初始化后,虽然没有拷贝最后的空字符,但是该初始化后是否还是会自己加上一个空字符
*/
#include <iostream>
#include <string>
using std::cout; 
using std::endl;
using std::string;
int main()
{
	//验证1——结果是确实有一个空字符在最后
	string s1 = "abc";
	cout << s1[0] << s1[1] << s1[2] << "——" <<s1[3] << "——" <<endl;
	//验证2——结果是确实会自己加上一个空字符
	string s2 = s1;
	cout << s2[0] << s2[1] << s2[2] << "——" << s2[3] << "—— " <<endl;
	system("pause");
	return 0;
}
//先这样理解,这种验证比不得看机器码。

我们规定:

使用等号初始化一个变量,编译器把等号右侧的初始值拷贝到新创建的对象中去,这种操作称为拷贝初始化(copy initialization)

不使用等号的称为直接初始化(direct initialization)。

今天买的《Head First HTML与CSS》、《CSS权威指南》、《HTML5权威指南》到手了,以及图书馆借了《HTML5实战》。把这些书都翻了翻目录和开头一点内容,准备开始白天C++,晚上学前端的生活咯~

打算先把《Head First HTML与CSS》、《HTML5权威指南》交替着看完,然后开始看《HTML5实战》、《CSS权威指南》。这四本看完估计早毕业了~

  

wuduojia
原文地址:https://www.cnblogs.com/wuduojia/p/7654464.html