C++学习日记day04

原创 2012年03月22日 21:04:38
第四课
1.成员指针
1)指向成员变量的指针
定义:成员变量类型 类名::*指针变量名;
赋值/初始化:指针变量名=&类名::成员变量名;
解引用:对象.*指针变量名、对象指针->*指针变量名;
2)指向成员函数的指针
定义:成员函数返回类型 (类名::*指针变量名) (形参表);
赋值/初始化:指针变量名=&类名::成员函数名;
解引用:(对象.*指针变量名)(实参表);、(对象指针->*指针变量名)(实参表)
2.输入输出运算符重载
int a = 10, b = 20;
cout << a << endl;
int c = a + b;
int d = a * b;
Student s (...);
cout << s << endl; // ?
s += 12;
L#R -> operator# (L, R);
    -> L.operator# (R);
3+4i
练习:定义一个分数类,包括分子和分母,支持输入输出。
3/5
3/5
3.友元函数
1) 友元不是成员,被声明为友元的函数可以访问类的任何成员。
2) 友元声明可以出现在类的公有、私有和保护部分,效果都是一样的4.双目运算符重载
L#R -> L.operator# (R)
int a = 10, b = 20;
(a+=b)+=b;
练习:为分数类添加+/-/+=/-=运算符。
5.单目运算符重载
#O // O.operator# ()
   // operator# (O)
注意:
1) 前缀自增减运算符
表达式的值是增减以后的值。
运算符函数返回操作数的引用。
成员函数形式的运算符函数没有参数,友元函数形式的运算符函数只有一个参数——操作数。
可以连用。
2) 后缀自增减运算符
表达式的值是增减以前的值。
运算符函数返回操作数增减以前的副本。
成员函数形式的运算符函数有一个int型哑元参数,友元函数形式的运算符函数有两个参数,第一个是操作数,第二个是int型哑元。
不能连用。
3) 类型转换运算符
在源类型中定义一个如下形式的运算符函数:
operator 目标类型 (void) {
    构造一个目标类型的对象,返回之;
}
如果在源类型中提供类型转换运算符函数的同时,在目标类型中定义类型转换构造函数,对于隐式类型转换,系统会优先选择类型转换运算符完成类型转换,而对于显式类型转换,系统则会优先选择构造函数完成同样的工作。
6.友元和成员
对于左右操作数类型不同的双目运算符函数,通常需要被定义为左操作数类型的成员,同时也是右操作数类型的友元。
练习:实现一个3X3整型矩阵,支持如下运算:
+、*、+=、*=、前后缀++、<<。
a b c     A D G     aA+bB+cC aD+bE+cF aG+bH+cI
d e f  X  B E H  =  dA+eB+fC dD+eE+fF dG+eH+fI
g h i     C F I     gA+hB+iC gD+hE+iF gG+hH+iI
6.不允许被用户重载的运算符
7.只能定义为成员函数的运算符
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++学习日记day05

第五课 1.不允许被用户重载的运算符 ::作用域解析操作符 .成员访问操作符 .*成员指针解引用操作符 ?:三目运算符 sizeof字节长度操作符 typeid类型信息操作符 操作符没...

C++学习日记day03

第三课 1. 初始化表的必要性 1) 类中包含常量和引用型的成员变量。必须通过构造函数和初始化表显式地对其进行初始化。 2) 在子类中显式地构造其基类部分。 class A { public...

C++学习日记day06

第六课 1.动态绑定的底层实现——虚函数表 class A {...}; class B : public A {}; A* pa = new B; 当编译器编译如下语句时 pa -> f...

C++学习日记 3

C++学习日记 1

我的C++学习之路--04.C++的“引用”

引用 引用是C++中一个特别重要的概念。但是说白了,它就是一个变量的别名,当需要用另一个变量或是对象来初始化自身的时候,这玩意儿就派上用场啦。而这时,变量的引用和变量名本身都指向内存中的同一片区域。...

C++学习日记

  • 2012-09-10 11:01
  • 260KB
  • 下载

【C++学习笔记】04_变量与基本类型

变量-基本数据类型 【变量】 变量就是机器的一个内存位置的符号名,在该位置可以保存数据,并可通过符号名对数据进行访问。 定义一个变量要明确以下几个问题: 1.      变量在内存中的位置...

C++学习日记 2

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)