C++面向对象实践
实践如下:
class Person{
private:
int age;
char name[];
int hight;
public:
Person(int age, int hight, char* name);
int getAge();
char* getName();
int getHight(){
return hight;
}
};
#include "Person.h"
Person::Person(int age, int hight, char* name1){
Person::age = age;
Person::hight = hight;
Person::name = name1;
}
int Person::getAge(){
return age;
}
char* Person::getName(){
return name;
}
#include <iostream>
#include "Person.h"
using namespace std;
int main(){
cout << "面向对象实践:" << endl;
cout << "end." << endl;
return ;
}
第二版:
class Person{
private:
int age;
char name[];
int hight;
public:
// 静态常量不允许修改
const static int SVar = ;
const static int Default_Age = ;
const static int Default_Hight = ;
// static 作为默认参数
Person(int age = Default_Age, int hight = Default_Hight){
this->age = age;
this->hight = hight;
}
Person(Person &p);
Person(Person *p);
~Person();
Person(int age, int hight, char name[]);
int getAge();
char* getName();
int getHight(){
return this->hight;//(*this).hight;
}
};
#include <iostream>
#include <string.h> #include "Person.h" Person::Person(int age, int hight, char name[]){
Person::age = age;
Person::hight = hight;
strcpy(Person::name, name);
}
Person::Person(Person &p){
age = p.age;
hight = p.hight;
}
Person::Person(Person *p){
age = p->age;
hight = p->hight;
}
Person::~Person(){
//delete[] name;
std::cout<<"...~\n";
}
int Person::getAge(){
return age;
} char* Person::getName(){
return name;
}
#include <iostream>
#include "Person.h"
using namespace std;
int main(){
cout << "面向对象实践1:" << endl;
Person p(,);
cout << "age:" << p.getAge()<< endl;
cout << "hight:" << p.getHight() << endl;
char name[] = "1212121212q";
Person pp(,,name);
Person *p1 = &pp;
cout << "age1:" << p1->getAge()<< endl;
cout << "hight1:" << p1->getHight() << endl;
cout << "name1:" << p1->getName() << endl;
Person p2(p);
cout << "age2:" << p2.getAge()<< endl;
cout << "hight2:" << p2.getHight() << endl;
Person p3(p1);
cout << "age3:" << p3.getAge()<< endl;
cout << "hight3:" << p3.getHight() << endl;
// Person p4(NULL,NULL);
// cout << "age4:" << p4.getAge()<< endl;
// cout << "hight4:" << p4.getHight() << endl;
cout << "Person::SVar:" << Person::SVar << endl;
cout << "end1." << endl;
return ;
}
C++面向对象实践的更多相关文章
- Golang的面向对象实践method
最近在系统的学习go的语法,一切都弄好了之后准备弄个im项目出来玩.在这个过程中会把看到有趣的写法和语法啥的拿出来分析一下. 我一直以为go语言对面向对象没有支持,但是后面看到了类似类的概念,meth ...
- MySQLi面向对象实践--multi_query
使用multi_query可以实现执行多条SQL语句,每一条SQL语句通过分号分隔. 需要注意的是: 多条用分号分隔的SQL语句中,只要有一条SQL语句执行失败,那么这一条SQL语句以及之后的SQL语 ...
- MySQLi面向对象实践--select
对于update.insert.delete请参考http://www.cnblogs.com/-beyond/p/8457580.html 执行select,如果SQL语句执行成功,那么返回的是一个 ...
- MySQLi面向对象实践--insert、update、delete
执行insert <?php $mysqli = new Mysqli(); $mysqli->connect("localhost","root" ...
- Javascript 面向对象实践
踩到了坑,才能学到东西. 记录我在慢慢的转向模块化遇到的问题以及解决的思路. 1.采用立即执行函数,闭包的方式创建模块 html: <!DOCTYPE html> <html lan ...
- 改善C#程序的50种方法
为什么程序已经可以正常工作了,我们还要改变它们呢?答案就是我们可以让它们变得更好.我们常常会改变所使用的工具或者语言,因为新的工具或者语言更富生产力.如果固守旧有的习惯,我们将得不到期望的结果.对于C ...
- .Net中关于等于的故事(一)
在.Net框架中,如果您查看所有类型的的基类:System.Object类,将找到如下4个与相等判断的方法: static Equals() virtual Equals() static Refer ...
- .Net中关于相等的问题
在.Net框架中,如果您查看所有类型的的基类:System.Object类,将找到如下4个与相等判断的方法: static Equals() virtual Equals() static Refer ...
- 学校的统一订书80%该烧掉——IT推荐书单
学校的统一订书80%该烧掉——IT推荐书单 作者: 夏浅音.py 中文图书个人黑名单:清华大学出版社的国产作者,例如一段错n次的谭浩强.一页错n次的严蔚敏... 中文图书个人白名单:机械工业出版社.电 ...
随机推荐
- LeetCode——回文链表
题目 给定一个链表的头节点head,请判断该链表是否为回 文结构. 例如: 1->2->1,返回true. 1->2->2->1,返回true. 15->6-> ...
- 微信小程序(7)--微信小程序连续旋转动画
微信小程序连续旋转动画 https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-animation.html <view animation=&quo ...
- MST-kruskal ElogE+V
hdu 1233 #include<stdio.h> #include<algorithm> using namespace std; struct dis { int a, ...
- 欧拉函数 || Calculation 2 || HDU 3501
题面: 题解:欧拉函数的基础应用,再套个很 easy 的等差数列前 n 项和就成了. 啊,最近在补作业+准备月考+学数论,题就没怎么写,感觉菜得一匹>_< CSL加油加油~! 代码: #i ...
- 实践:Linux用户、组和密码相关文件被破坏如何恢复系统
我们先看一下用户用户组和密码相关文件: 1 2 3 4 5 6 7 8 9 [root❄centos7 ~]☭ ll /etc/passwd* /etc/shadow* /etc/group* /et ...
- 前端面试题-clearfix(清除浮动)
一.浮动的概念 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止.由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样. 二.浮动的影响 1. ...
- 给DataFrame的列命名或重命名
1.读取文件的时候重命名 names = new_col,可以在读取文件的时候,给出新列名. new_col = ['new1', 'new2',... , 'newn'] pd.read_csv(' ...
- 微信小程序data数组push和remove问题
因为在做一个小程序的demo时.由于不向后台请求数据,所以就涉及到对本地数据的操作,现在就做一些数组的增删 //添加新元素 addItemFn: function () { var { lists } ...
- 2017 CVTE Windows开发二面 3.8 (offer)
中午1点左右,广州的号码打过来了,是CVTE的hr,然后问我下午4点半有没有时间,帮我约视频的二面. 当然有时间了啦,然后hr给我邮箱发了个链接,让我4点半登陆进去. 因为1面没问任何网络和操作系统的 ...
- JVM启动参数大全及默认值
Java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足, ...