乙個簡單的值型別
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 根例項中,把這個元...