#include<iostream>
#include<vector>
#include<assert.h>
#include<algorithm>
#include<string>
using namespace std;
class bird
{
public:
bird()=default;
bird(string const &t) :x(t){};
~bird()=default;
void si(){ cout << "bird:" << x << endl; }
static void p(){
cout <<s<<endl;
}
void bi(){
cout << "bi";
}
private:
string x;
static string s;
};
class chick:public bird
{
public:
chick(string const &t) :x(t),bird(t){};
virtual void si(){ cout << "chick:" << x<<endl; }
private:
string x;
};
string bird::s = "bird staric";
//string chick::s = "chick static";
int main(){
string m{ "12345" };
int i;
chick c(m);
bird b(m);
bird *b1 = &c;
c.p();
b.p();
b1->p();
cin >> i;
#include<vector>
#include<assert.h>
#include<algorithm>
#include<string>
using namespace std;
class bird
{
public:
bird()=default;
bird(string const &t) :x(t){};
~bird()=default;
void si(){ cout << "bird:" << x << endl; }
static void p(){
cout <<s<<endl;
}
void bi(){
cout << "bi";
}
private:
string x;
static string s;
};
class chick:public bird
{
public:
chick(string const &t) :x(t),bird(t){};
virtual void si(){ cout << "chick:" << x<<endl; }
private:
string x;
};
string bird::s = "bird staric";
//string chick::s = "chick static";
int main(){
string m{ "12345" };
int i;
chick c(m);
bird b(m);
bird *b1 = &c;
c.p();
b.p();
b1->p();
cin >> i;
}
基类中的静态变量需要在类外进行初始化,如果初始化的不是基类中的静态变量,而是派生类中的,则会弹出waring。