C++之类的特性(一)
来源:互联网 发布:ubuntu ftp上传文件 编辑:程序博客网 时间:2024/06/18 17:57
由于我对面向对象的编程思想特别特别喜爱,所以,每上手使用一中语言前,我总要看看它有没有类这个概念。有的时候用面向对象开发效率提高不了多少,尽管如此,我还是喜欢用,因为它让我觉得整齐,整洁。
构造函数怎么来的?
最早的时候我们用自己写init,自己调用init来构造对象的成员变量,但是久而久之,这种繁琐的工作谁还喜欢做???难道不能再省事点吗?
#include <iostream>using namespace std;class point{public: int x; int y; void init(){ x = 2; y = 3; } void output(){ cout<<x<<endl<<y<<endl; }};int main() { point pt; //init()函数用于变量的初始化,但是有的时候我们会忘记调用或者懒得自己调用init。 //那么,问题来了,有没有一种方法能让我们在创建对象的时候就对成员变量初始化呢?? //答案:就是偷懒。让系统自动给我们调用。 pt.init(); pt.output(); return 0;}
这种繁琐的工作谁还喜欢做???难道不能再省事点吗?让系统帮我门调用。所以C++规定构造函数的名字与类名要相同,而且还不能有返回值。
#include <iostream>using namespace std;class point{public: int x; int y; //删掉init() point(){ x = 4; y = 3; } void output(){ cout<<x<<endl<<y<<endl; }};int main() { point pt; //删掉pt.init()。从此系统做这种破事 pt.output(); return 0;}
构造函数到此为止
析构函数?
到目前为止析构函数我还未曾用过,待到用时再补充进来。除开文件操作能用到析构函数来关闭,除此之外,我还没见过。
函数的重载
定义:函数的参数类型不同或者参数个数不同才叫函数的重载。
我希望在生成pt对象时,根据用户输入的x,y构造。怎么解决?重载
重载在C里面是不允许的,但是在C++中就是合法的。说C++比C好,我觉的没有任何问题,为何C和C++的人会争论起来呢??搞不明白。
#include <iostream>using namespace std;class point{public: int x; int y; point(){ x = 4; y = 3; } point(int a, int b) { x = a; y = b; } void output(){ cout<<x<<endl<<y<<endl; }};int main() { point pt(3,3); pt.output(); return 0;}
篇幅过长,C++的继承与多态再另一篇文章中讲
阅读全文
0 0
- C++之类的特性(一)
- C#: VS2008的新特性(一)
- C++之类(一)
- C#拾遗之类的OOP特性
- Objective-C的面向对象特性(一)
- C# 特性的学习(一)
- C++之类的构造与析构(一)
- iOS runtime 学习之类的属性动态获取(一)
- C++之类的构造与析构(一)
- 用汇编的眼光看C++(之类继承)
- 用汇编的眼光看C++(之类继承)
- 用汇编的眼光看C++(之类继承)
- 用汇编的眼光看C++(之类继承)
- c++primer之类(类的静态成员)
- object-C语言特性(一)
- PHP之类特性
- Objective-C对象之类对象和元类对象(一)
- Objective-C对象之类对象和元类对象(一)
- 大数据项目一电商平台下的日志分析08
- status
- sbt自动打包scala代码
- 通过私有构造器强化不可实例化的能力
- 总结
- C++之类的特性(一)
- 正则表达式匹配java实现
- 快速排序-三向切分(java实现)
- react中react-redux和react-router4.*的配合使用
- 调用android系统邮件发送邮件
- Linux-tomcat的集群部署
- mysql语句中的replace函数,即替换的意思
- 【学习整理】天基移动通信网络
- StringUtils--字符串工具类