c++学习2

函数重载:在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数注意:重载函数的参数个数,参数类型或参数顺序三者中必须有一个不同 函数重载的规则: 函数名称必须相同。参数列表必须不同(个数不同、类型不同、参数排列顺序不同等)。函数的返回类型可以相同也可以不相同。仅仅返回类型不同不足以成为函数的重载。  指针:~~~ 对象的基础–结构:   使用对象编程:class Car{public: std::string color; std::string engine; float gaa_tank; void fill_tank(float liter); void running(void); Car(void);     //构造器};  void Car::fill_tank(float liter){ gas_tank +=liter;} Car::Car(void){ color = “while”; engine = “v8”; wheel = 4; gas_tank = FULL_GAS;}   int main (){ return 0;}    构造器:1.与类名相同,无返回,被系统生成对象时自动调用,用于初始化 2.可以有参数,构造器的重载,默认参数 3.若未提供任何构造,系统默认生成一个无参空构造器。若提供,则不再生成默认构造器。析构器:1.函数名:类名前加上~2.没有返回值3.没有参数,不可以被重载4.必须公有5.没有析构函数,默认析构函数 6.一个类中只能拥有一个析构函数   #include #include class Baseclass//定义一个类{public: Baseclass();///构造器 ~Baseclass();//析构器 void dosometing();//方法}; class Subclass : public Baseclass//定义子类{public: Subclass(); ~Subclass();}; //对基类构造器进行定义Baseclass::Baseclass(){ std::cout<<“进入基类构造器…\n\n”; std::cout<<“我在基类构造器干某事…\n\n”;} //对基类析构器进行定义Baseclass::~Baseclass(){ std::cout<<“进入基类析构器…\n\n”; std::cout<<“我在基类析构器干某事…\n\n”;}//对类的方法进行编写void Baseclass::dosometing(){ std::cout<<“dosometing函数的调用\n\n”;} //对子类构造器进行定义Subclass::Subclass(){ std::cout<<“进入子类构造器。。\n\n”; std::cout<<“我在子类构造器干某事…\n\n”;}//对子类析构器进行定义Subclass::~Subclass(){ std::cout<<“进入子类析构器。。\n\n”; std::cout<<“我在子类析构器干某事…\n\n”;} int main(){ Subclass  duixiang;//定义一个对象  duixiang.dosometing(); std::cout<<“完事,收工!\n\n”; return 0;     this指针:一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。  类的继承:class SubClass : pubcil SuperClass{ }class Pig(子类) : public Animal(父类){}; 例如:class Animal{public: std::string mouth; void eat(); void sleep(); void drool(); }; class Pig : public Animal{public: void climb(); }; class Turtle : public Animal{public: void swim();}; void Animal::sleep(){ std::cout<< “i am sleepingf”<<std :: endl;} void Pig::climb(){ std::cout << “hhhh会上树”<<std ::endl;} int main(){ Pig pig; Turtle tyrtle;  pig.sleep(); turtle.sleep(); pig.climb(); turtle.swim();  return 0;}   继承机制中的构造器和析构器:#include #include class Baseclass//定义一个类{public: Baseclass();///构造器 ~Baseclass();//析构器 void dosometing();//方法}; class Subclass : public Baseclass//定义子类{public: Subclass(); ~Subclass();}; //对基类构造器进行定义Baseclass::Baseclass(){ std::cout<<“进入基类构造器…\n\n”; std::cout<<“我在基类构造器干某事…\n\n”;} //对基类析构器进行定义Baseclass::~Baseclass(){ std::cout<<“进入基类析构器…\n\n”; std::cout<<“我在基类析构器干某事…\n\n”;}//对类的方法进行编写void Baseclass::dosometing(){ std::cout<<“dosometing函数的调用\n\n”;} //对子类构造器进行定义Subclass::Subclass(){ std::cout<<“进入子类构造器。。\n\n”; std::cout<<“我在子类构造器干某事…\n\n”;}//对子类析构器进行定义Subclass::~Subclass(){ std::cout<<“进入子类析构器。。\n\n”; std::cout<<“我在子类析构器干某事…\n\n”;} int main(){ Subclass  duixiang;//定义一个对象  duixiang.dosometing(); std::cout<<“完事,收工!\n\n”; return 0;

发布了11 篇原创文章 · 获赞 1 · 访问量 429

猜你喜欢

转载自blog.csdn.net/weixin_43871680/article/details/95376142
今日推荐