乙個簡單的值型別data

2021-04-08 19:47:42 字數 2437 閱讀 1931

乙個簡單的值型別

data

只做了個大概內容,有些細節還沒實現

,程式如下:

#include

using namespace std;

struct cache;

class data;

class bad_data{};

data(int dd=0, month mm=month(0), int yy=0);

//check data

int day() const

month month() const

int year() const

string string_rep() const;// string show

void char_rep() const;// c-stringshow

static void set_default(int,month,int);

//rewrite data

data& add_year(int n);

data& add_month(int n);

data& add_day(int n);

//reload

bool operator!=(data a,data b);

bool operator<(data a,data b);

bool operator>(data a,data b);

data& operator++(data&d);

data& operator--(data&d);

data& operator+=(data&d);

data& operator-=(data&d);

data& operator+(data&d);

data& operator-(data&d);

private:

cache *c;

bool cho;

void compute_cache_value() const;

int d,m,y;

static data default_data;

};

//help fuction

int diff(data a, data b);

bool leapyear(int y)

data next_saturday(data d);

//define constrction function

data::data(int dd, month mm, int yy)

if( dd<1 || max

throw bad_data();

y = yy;

m = mm;

d = dd;

}

data& data::add_year(int n)

if(n<0)

}

data& data::add_month(int n)

y+=delta_y;

m = month(mm);

return *this; }

//deal with minlus (n<0)

int de_y = (-n)/12;

int lef_y = (-n)%12;

int mm = 12-lef_y+m;

if(mm>12)

y +=de_y;

m = month(mm); }

data& data::add_day(int n)

if(n<0) {}

}

bool data::operator != (data a,data b)

bool data::operator < (data a,data b)

bool data::operator >(data a,data b)

data& data::operator ++(data& d)

d.m++;

return *this;

case apr:

case jun:

case sep:

case nov:

if(d.d==30)

d++;

return *this;

case dec:

if(d.d==31)

d.d++;

return *this;

case feb:

if((leapyear(d.y))&&(d.d==29))

if((!leapyear(d.y))&&(d.d ==28))

return *this; }

}

string data::string_rep()const

return c->rep; }

還需要加工一下,只是個雛形。

vue中data返回乙個函式

function person var obj1 person var obj2 person obj1.name b console.log obj1 console.log obj2 a function person var obj1 person var obj2 person obj1.n...

為何元件的data必須是乙個函式

首先定義的 xx.vue檔案在編譯之後是乙個類,每個地方使用這個元件的時候,相當於對這個類例項化,在例項化的時候執行data,如果不是乙個函式的話,每個元件的例項的data都是同乙個引用資料,當該元件作為公共元件共享使用,乙個地方的data更改,所有的data一起改變。如果data是乙個函式,每個例...

Vue 元件的data必須是乙個函式

定義乙個名為 button counter 的新元件 vue.component button counter template you clicked me times.元件是可復用的 vue 例項,且帶有乙個名字 在這個例子中是。我們可以在乙個通過new vue建立的 vue 根例項中,把這個元...