不会用类被大神鄙视了 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是否越界
}

本博客注有“转”字样的为转载文章,其余为本人原创文章,转载请务必注明出处或保存此段。欢迎交流c++ 编程技术 QQ:290387340

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值