• c++面向对象基础


    面向对象大家都差不多,就学个基本语法啥的。

    一些和java,python中面向对象的区别:

    1.在class内声明函数时可以直接定义函数,也可以只声明函数名而不进行定义,然后在class外面使用范围解析运算符 :: 定义该函数
    2.参数名和成员变量名同名时可以用this->来调用成员变量。不带this的可能和java一样也是就近原则
    3.构造函数没有返回值,也不能写void

    还有一些在写下面的例子时刚了解到的东西。此前学习的是include cstdlib的时候才能调用system函数。但是这次我没有include他的时候也能调用system。在查阅相关资料(标准库头文件 <cstdlib>)后确定是cstdlib里有system函数。在询问朋友后,了解到是iosteam里已经包含了sctdlib这个库,所以在我没有include他的时候也能调用system(果然没有系统的按课本学过就是不一样)。这个东西叫progma once,大概就是会自动处理重复的include吧。

    #include <iostream>
    #include <string>
    #include <cstdlib>
    
    using namespace std;
    
    class dog
    {
        public:
            string name;
            int age;
            int getage();
    
            void bark()
            {
                cout<<"I'm a dog,my name is "<<name<<" and I'm "<<age<<" years old"<<endl;
            }
    
            //构造函数没有返回值,也不能写void
            dog()//不带参数的构造函数
            {
                cout<<"a dog is created by none arguments constructor"<<endl;
            }
    
            dog(string name,int ag)//带参数的构造函数
            {
                cout<<"a dog is created by arguments constructor"<<endl;
                this->name=name;//参数名和成员变量同名时可以用this->
                age=ag;
            }
    };
    
    //也可以在类的外部使用范围解析运算符 :: 定义该函数,如下所示:
    int dog::getage()
    {
        return age;
    }
    
    int main()
    {
        dog dog1;
        dog1.name="hotdog";;
        dog1.age=5;
        dog1.bark();
        cout<<"the dog's age is "<<dog1.getage()<<endl;
    
        dog dog2("colddog",4);
        dog2.bark();
        system("pause");
        return 0;
    
    }
  • 相关阅读:
    git config (21)
    狗狗染头,一举天下成名
    K2使用总结K2简介
    K2使用总结流程设计
    如何组建开发团队谈面试
    如何组建开发团队谈谈团队组成
    如何组建开发团队谈招聘中的牛人
    作业题有感
    js对象学习笔记Function类型和对象
    非常认同的《SEO优化大全》
  • 原文地址:https://www.cnblogs.com/roadwide/p/10560556.html
Copyright © 2020-2023  润新知