简单记录一下最近学到的c++内容

历经两个月的学习,c++终于学习到了类与对象部分,因为我也学艺不精,所以也写不出什么技术文,只是借此记录一下我最近学到的内容与一些想法来督促自己学习。(主要还是写下来以后看的时候好嘲讽以前还是萌新的自己2333333)

1.类为面向对象的程序设计,可以信息封装的基础。首先,要定义类与对象,用到了一下语句:

class xx

{ pubic:

         公有段的数据成员及函数;

 protected:

         保护段的数据成员及函数;

 private:

         私有段的数据成员及函数;

};

其中class为定义类时使用的关键字,需要注意的是,在定义时的{}后一定要记得加上“ ; ”。而在类外定义使用成员函数时使用: 返回类型  xx::函数名 (参数表)

例如,我此时定义一个类:

class book

{ public:

       int booknumber();

};

当我需要在类外定义其中的成员函数时,语句为:

int book::booknumber()

{

      xxxxxxxxxxxxx 

 }

大致如此。

2.简单的构造函数与析构函数

构造函数与析构函数都是类中特殊的成员函数。构造函数与析构函数都由系统自动调用,不同点在于构造函数在建立类对象时调用,而析构函数在类对象作用域结束时调用。而且在消亡时为先产生的对象后消亡,而且他们都不能被定义在private部分。构造函数的原型为: 类名::类名(参数表);       析构函数的原型为:  类名::~类名();

而当构造函数带参数时,可以用指定的数据来初始化对象的数据成员。下面写一个例子:

class  date

{ public:

       date(int,int,int);

       ~date();

       void setdate(int y,int m,int d);

        void printdate()const;

 private:

       int year,month,day;

};

date::date(int y,int m,int d)

    year=y;

    month=m;

    day=d;

    cout<<year<<"/"<<month<<"/"<<day<<" is Taylor's birthday !"<<"\n";

}

date::~date()

     cout<<"Too late to say happy birthday."<<endl;

}

void date::setdate(int y,int m,int d)

{

    year=y;

    month=m;

   day=d; 

}

void date::printdate()const

{

    cout<<"Today is "<<year<<"/"<<month<<"/"<<day<< endl;

}

int main()

{

     date d(1989,12,13);

     d.setdate(2017,12,18);

     d.printdate(); 

}

运行结果为:

1989/12/13 is Taylor's birthday!

Today is 2017/12/18

Too late to say happy birthday.            //哎呀因为本人是个霉粉,所以就拿我家霉霉举个栗子。。。

所以带参数的构造函数是有这种操作的。

此外还有一个操作叫“复制构造函数”,用于创建对象时用一个已有的同类型对象的数据对其进行初始化。语句为: 类名::类名(const 类名 & 引用名, ...); 但具体的操作我暂时还没有用到,所以暂时不做记录。

3.类中的其他成员

(1)常成员

常成员的定义用const来约束。常成员中又包含常数据成员、常对象、常成员函数等。

对常数据成员而言,既可以通过在构造函数中直接用常量来初始化,也可以用带参数的构造函数来对常数据成员初始化,这里不做太多解释。

常对象则是在定义对象时以const为前缀的对象,需要注意的是,常对象中的数据在作用域中约束为只读,不可修改。这里也不做过多解释。

常成员函数则是以const为后缀的成员函数,这样的成员函数中的数据也是不能修改的。例如之前写到的 int printdate()const; 就是这样的一个成员函数。

这一部分好像相当简单的样子。。。。。

(2)今天刚学到的新知识:静态成员

当类成员以static声明时,就成为了静态成员。之前一直不太明白所谓的“静态”是什么意思,查过之后才知道“静态”指的是其作用域局部与类。(大佬们别笑话我)

在类中,声明static数据成员和其他数据成员一样不会建立储存空间,而且static数据成员储存空间建立不依赖于对象。

静态成员声明时可以放在private里作为私有静态成员,也可以放在public里作为公有静态成员,需要注意的是作为私有静态成员时不能在main函数中直接访问。

而当成员函数以static声明时,就称为静态成员函数。

举个栗子吧:

class x

     int datmem;

 public:

     static void abc();

};

此时我要在类外调用静态成员函数

void m()

{

      x obj;

      x::abc();

      obj.abc(); 

}

对于x::abc();与obj.abc();都是正确的,都可为静态成员函数的入口地址。

不过对于静态成员这部分,我暂时还没有写过具体的程序,关于具体的写法与想法我会在具体掌握之后再做一次补充。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值