11·12学习笔记

今天上午上了C++课,复习了上次的类定义,以及类的成员函数,数据成员等,还增加了新的东西。

为了让程序能够尽可能分成模块,便于修改,将整个程序分开,变成多个小程序,分为头文件,实现文件,还有主程序文件。

还加入了赋值构造函数,析构函数。以及运算法的重载。编写一个类,其实就是定义了一个用户的数据结构。要根据这个数据结构所需要的操作对他进行完善,所以有必要对某些运算符进行重载。这就是前面学习到的运算符重载的问题了。

以下是分开的代码:

date.h

#ifndef DATE_H
#define DATE_H

using std::cout;
using std::endl;

//struct date {
class date {
        int d,m,y;
//      static date default;
        static int count;
date* p;
public:
        date();
        date(int,int,int);
        date(int,int);
//      static int count;


//to add a copy constructor
date(const date&);
~date(){cout<<"delete dtor..."<<endl; delete p;}
        int getDay(date& dt){return dt.d;}
        int getMonth(date& dt){return dt.m;}
        int getYear(date& dt){return dt.y;}
        void setDay(date& dt,int dd){dt.d=dd;}
        void setMOnth(date& dt,int mm){dt.m=mm;}
        void setYear(date& dt,int yy){dt.y=yy;}
//      static void set_default(int,int,int);
//      static void set_count();
        static void inc(){count++;}
        static int get_count();
};
#endif


date.cc

#include<iostream>
#include"date.h"

int date::count=0;
         int date::get_count(){return count;

        date::date(){d=5;m=11;y=2000;inc();}
        date::date(int d1,int m1){d=d1;m=m1;y=2022;inc();}
        date::date(int d2,int m2,int y2){d=d2;m=m2;y=y2;inc();}


date::date(const date& ddd)
{ cout<<"now is in the copy ctor..."<<endl;
d=ddd.d;m=ddd.m;y=ddd.y;
}


datemain.cc:

#include<iostream>
#include"date.cc"
int main()
{       //date today=date(7,24,1989);
        date today(7,24,1989);
//      today.init(today,5,11,2012);
//      today.setYear(today,2002);
        cout<<today.getYear(today)<<endl;
       cout<<date::get_count()<<endl;
      date oo(1,1,2012);
        date tt(1,2);
        date ff;
// date d2(oo);
date d2;
d2=oo;
        cout<<date::get_count()<<endl;
return 0;
}

晚上还看了图的知识。存储方式,数据结构,以及一些最短路径的算法。

竟然看到了经典的Dijkstra算法,膜拜啊。看了个大概明白。发现还是想法比较重要,只要你能想到,就没有什么解决不了的麻烦。发散性思维啊。敢想敢做。不要对自己没有信心,一上来就说做不出来。可以先构造模型,一点一点简化问题。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值