不会用类被大神鄙视了 T T
就学习一下
前面的教程我已经再三说明,结构体的掌握非常重要,重要在哪里呢?重要在结构体和类有相同的特性,但又有很大的区别,类是构成面向对象编程的基础,但它是和结构体有着机器密切的关系。
我们在c语言中创建一个结构体我们使用如下方法:
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
struct test
{
private:
int number;
public:
float socre;
};
类的创建方式和结构体几乎一样看如下的代码:
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
class test
{
private:
int number;
public:
float socre;
public:
int rp()
{
return number;
}
void setnum(int a)
{
number=a;
}
};
但是大家注意到没有,标准c中是不允许在结构体中声明函数的,但c++中的类可以,这一点就和c有了本质的区别,很好的体现了c++面向对象的特点!
过去的c语言是一种非面向对象的语言
他的特性是
程序=算法+数据结构
但c++的特性是
对象=算法+数据结构
程序=对象+对象+对象+对象+........
所以根据这一特性,我们在定义一个自己定义的结构体变量的时候,这个变量就应该是叫做对象或者叫实例
例如
test a;
那么a就是test结构的一个对象(实例)
test结构体内的成员可以叫做是分量,例如:
a.socre=10.1f;
那么number就是test结构的对象a的分量(或者叫数据成员,或者叫属性)score;
在c语言中结构体中的各成员他们的默认存储控制是public 而 c++中类的默认存储控制是private,所以在类中的成员如果需要外部掉用一定要加上关键字public声明成公有类型,这一特性同样使用于类中的成员函数,函数的操作方式和普通函数差别并不大
嗯。。。上面这个写的我好想没看懂。。。。还是不知道
检查数组是否越界
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/*
c++在运行期间不会自动检查数组是否越界,设计一个类检查数组是否越界。
*/
#include <iostream>
#include <string>
using
namespace
std;
class
check
{
public
:
check(
char
*s)
{
str=
new
char
[
strlen
(s)+1];
strcpy
(str,s);
len=
strlen
(s);
}
char
operator[](
int
n)
{
if
(n>len-1)
{
cout<<
"数组下标越界"
<<endl;
return
' '
;
}
else
{
cout<<
"数组下标没有越界"
<<endl;
return
*(str+n);
}
}
void
Print(){cout<<str<<endl;}
private
:
char
*str;
int
len;
};
void
main()
{
check array(
"GoodMorning"
);
//类的构造函数
array.Print();
cout<<
"Location 0:"
<<array[0]<<endl;
//判断下标为0是否越界
cout<<
"Location 20:"
<<array[20]<<endl;
//判断下标为20是否越界
}
|