今天准备学习下C++,弥补下程序语言上的不足,留下学习笔记以备忘。
1.面向对象
C++是面向对象语言,如果有java等语言基础,看C++不是太难的样子。首先看看类、方法的定义,调用等。
a.定义类和方法
#include <stdio.h>
class People{
public:
void sayHello(){
printf("Hello world\n");
sayLove();
}
private:
void sayLove(){
printf("I love you !\n");
}
};
上面定义了一个People类,并且定义了一个公共sayHello()方法和一个私有的sayLove()方法,看起来跟java差不多
b.调用
#include <iostream>
#include "People.cpp"
int main(int argc, const char * argv[]) {
People *p = new People();
p->sayHello();
delete p;
return 0;
}
在main方法中创建了一个People实例,并且调用了它的sayHello()方法,调用结束后销毁了该对象。
2.命名空间
为了方便区分不同资源库中的类,有命名空间的概念。
namespace ably_clove {
class Man{
public:
void run(){
printf("run \n");
};
};
}
上面给类加了一个命名空间,那该怎么调用呢?
#include "Man.cpp"
int main(int argc, const char * argv[]) {
People *p = new People();
p->sayHello();
delete p;
ably_clove::Man *m = new ably_clove::Man();
m->run();
delete m;
return 0;
}
调用的时候加上命名空间::就可以了。当然每次这样写还是很麻烦的,有放方便点的做法么?
#include "Man.cpp"
using namespace ably_clove;
int main(int argc, const char * argv[]) {
ably_clove::Man *m = new ably_clove::Man();
m->run();
delete m;
Man *m2 = new Man( );
m2->run();
delete m2;
return 0;
}
3.类的继承
继承是面向对象语言的三大基本特征之一,来看一下C++是如何实现继承的。