1.数组的定义
type arrayName [arraySize];
对比Java中的定义
c++中是先声明类型,变量名,数组长度。type[arraySize]arrayName;
2.数组初始化
type arrayName [arraySize]={xxx,yyy,...}
对比Java中的定义为type[]arrayName =new type[]{xxx,yyy,...}
3.字符串
C++中字符串表现形式为char site[7] = {'f', 'o', 'x', 'h', 'o', 'm', 'e','\0'}
,字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此数组的长度需要额外的进行+1,也可写作以下形式
char site[] = "foxhome";
4.字符串基本方法
函数名 | 作用 |
---|---|
strcpy(s1, s2) | 复制字符串 s2 到字符串 s1 |
strcat(s1, s2) | 连接字符串 s2 到字符串 s1 的末尾,连接字符串也可以用 + 号 |
strlen(s1) | 返回字符串 s1 的长度 |
strcmp(s1, s2) | 如果 s1 和 s2 是相同的,则返回 0 |
strchr(s1, ch) | 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置 |
strstr(s1, s2) | 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置 |
5.String 类
将字符封装成了对象,拥有了一些封装方法。
6.指针
指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。定义格式如下:
简单的示例如下type *varName;
列如
int *m;
//定义变量
string str = "foxhoem.top";
//声明指针
string *m;
//将变量存储地址赋值给指针
m = &str;
//*m表示从指针的内存地址取值
cout << "strcmp:" << *m << endl;
7.引用
引用变量是一个别名,与指针不同的是它相当与一个与一个变量名等价,可以笼统的理解为给变量名再取了一个名字,但他们均指向了同一个空间。列如type &varName=X;
//定义变量
string str = "foxhoem.top";
//声明指针
string &m = str;
m = "www.foxhome.top";
cout << str << endl;
这里会打印出www.foxhome.top
8.结构体
结构体用于描述数据结构,而非对象方法,与Java中的class相比数据跟为简单。
struct type_name {
member_type1 member_name1;
member_type2 member_name2;
} object_names;
例如
struct Info
{
long time;
char msg[50];
};
int main(int argc, char *argv[])
{
Info into;
into.time = 11.90l;
strcpy(into.msg, "my foxhome");
cout << into.time << endl;
cout << into.msg << endl;
return 0;
}
9.类
概念与Java类似,定义的方式不一致,示例如下:
//关键字 类名
class Info
{
public: //变量修饰符 private,public proteced
int index;
string msg;
long time;
//方法声明
string getMsg(void);
void set(string msg, long time);
};
void Info::set(string m, long t)
{
msg = m;
time = t;
}
string Info::getMsg()
{
return msg;
}
int main(int argc, char *argv[])
{
Info info;
info.index = 15;
string m = "hshshs";
info.set(m, 178l);
cout << info.getMsg() << endl;
return 0;
}
10.类继承
概念与Java近乎一致,书写方式有所不同。名词上喜欢称基类,派生类,而Java中喜欢称为父类子类,可能原因为c++中存在多集成概念,不能简单的理解子父关系。结构如下:
class 派生类明: 权限修饰符 基类名
权限修饰符可为
默认为private,权限修饰符作用如下public,protected,private
公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
保护继承(protected): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。
私有继承(private):当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。
11.多继承
代码结构class <派生类名>:权限修饰符 基类名,权限修饰符 基类名2,…
12.接口,抽象类,纯虚函数
与Java相比该C++中只有虚函数的定义,定义方法如下
基类定义虚函数之后派生类必须实现对纯虚函数进行实现。virtual 返回值 方法名() = 0;