C++ 学习笔记1
来源:互联网 发布:淘宝押金在哪里交 编辑:程序博客网 时间:2024/06/07 10:14
最近看了《C++ primer》一书,感觉看的挺仔细的,觉得理解的差不多了,今早上开始开算法导论,以前看算法导论的时候都是知道理论,没有动手实现,感觉收获不大。现在再看的时候觉得应该动手实现,加深理解的同时也可以锻炼C++编程。不动手不知道,C++的很多基本知识编程的时候还是不熟悉,还需要多锻炼。
今早就变了一个特别简单的插入排序算法,在算法中使用了模版。模版的使用相当来说还比较简单,但是在编写类的时候遇到了很多问题,主要是对概念不清楚,操作符重载是否需要作为成员函数、作为友元还是作为一般函数,这些都不是很熟悉。
经过不断的调试,非常简单的程序也花费了好长时间,实在是汗颜啊!对于今早的编码,总结如下:
(1)赋值、下标、调用和成员访问箭头必须定义为成员函数
(2)符合赋值操作符应该定义为成员函数,但不是必须的
(3)改变对象状态或者与给定类型紧密联系的操作符,如自增、自减、解引用等,通常定义为成员函数
(4)对称的操作符,如算术操作符、相等操作符、关系操作符合为操作符,最好定义为普通非成员函数,但是基本应该定义为友员函数。
(5)输入输出操作符必须定义为非成员函数,应为成员函数的第一个参数必须是类类型的对象,而输入输出操作符应该是ostream类型的应用,并且操作符的返回类型也应该是ostream引用。
简单定义一个类Type如下:
Type.h文件:
class Type{private:int number;string str;public:Type(){}Type(int a,string str):number(a),str(str){}Type(const Type& t){number = t.number;str = t.str;}Type& operator=(const Type& t){number = t.number;str = t.str;return *this;}friend int operator<(const Type& t1,const Type& t2);friend int operator>(const Type& t1,const Type& t2);friend ostream& operator<<(ostream& os,const Type& t);~Type(){}};
Type.cpp文件:
int operator<(const Type& t1,const Type& t2){if (t1.str < t2.str)return 1;elsereturn 0;}int operator>(const Type& t1,const Type& t2){if (t1.str > t2.str)return 1;elsereturn 0;}ostream& operator<<(ostream& os,const Type& t){os << t.number << " " << t.str << endl;return os;}
- 【c/c++】学习笔记1
- C学习笔记1
- C 学习笔记1
- C--学习笔记1
- c sharp学习笔记1
- C语言学习笔记(1)
- object c学习笔记(1)
- 狂人C学习笔记(1)
- C: 入门学习笔记(1)
- C语言学习笔记1
- object-c学习笔记-1
- c语言学习笔记1
- C++primer学习笔记(1)
- C++Primer学习笔记《1》
- Objective-C 学习笔记1
- Object-c学习笔记(1)
- C语言学习笔记1
- C语言学习笔记1
- vmm 网上资料
- IE7和IE8下验证码自动刷新失败的问题及解决方法
- Facebook:寻找出路的小巨人
- 字符串转换为十六进制 (转)
- 笑话来提神
- C++ 学习笔记1
- ZOJ 1002
- 调查称Google+年内将超Twitter 成美第二大SNS
- android socket 本机调试 connection time out 解决办法
- php冒泡排序和快排
- Qt4执行qmake生成Makefile不成功
- winform 获取当前程序运行根目录
- 使用JDom来创建XML文档实例,需要引入jdom.jar包
- zend framework的优缺点