C++ 中 :: , :和 -> 操作符的区别
:: 操作符号
此操作符表示域运算符, A::B 表示 作用域A中的名称B , 其中A可以是 名称空间、类、结构等
1:表示类作用域
“::”指明了成员函数所属的类。 如:M::f(s) 表示f(s)是类M 的成员函数
如果想在类的外部引用静态成员函数,或在类的外部定义成员函数这些情况下,都会用到::作用域,同时使用名称空间也会用到(如: std::cout std::cin)
2: 表示“域操作符” 例如: 声明一个类A ,类A 里面声明了一个成员函数 void f() , 但没有在类的声明里给出定义,那么如果需要在 类外定义,就要写成
void A ::f() 表示函数是类A 的成员函数。
3:表示引用成员函数及变量
例: Sytem::Math::Sqit() 相当于: Sytem.Math.Sqrt()
: 操作符号
1:一般表示继承
2:表示机构内位域的定义(即变量占几个bit空间)
3:在构造函数后面,: 起分割作用,是类给成员变量赋值的方法
. 和 -> 操作符号
A.B : A为对象或者结构体, 点号(.) 左边必须为实体
例如: A->B : 表示A 为指针 , -> 成员提取。 整个意思就是: 提取A 中的成员B , A只能指向 类、结构、联合的指针
stream这个类有两个重要的运算符:
1、插入器(<<)
向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,
所以,cout<<"Write Stdout"<<'\n';就表示把字符串"Write Stdout"和换行字符('\n')输出到标准输出流。
2、析取器(>>)
从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,
所以,cin>>x;就表示从标准输入流中读取一个指定类型的数据。