zoukankan      html  css  js  c++  java
  • C++ 面向对象

    1. 面向对象小例子

    #include <iostream>
    using namespace std;
    class bad_hmean {
    private:
      double v1;
      double v2;
    
    public:
      bad_hmean (int a=0, int b=0): v1(a), v2(b){};
      // 上下这么写是一样的意思 , 有时候看见上面的都不知道什么意思, 所以这里也就记录一下
      // bad_hmean (int a=0, int b=0){v1=a, v2=b}; 
      // virtual ~bad_hmean ();
      void mesg();
    };
    
    inline void bad_hmean::mesg(){
      std::cout << "hmean(" << v1 << ", " << v2 << "): " << "invalid arguments: a = -b
    " << '
    ';
    }
    
    int main(int argc, char const *argv[]) {
      bad_hmean(1, 2).mesg();
      // bg.mesg();
      return 0;
    }

    下面是经常写的, 高级封装, 把类进行拆分, 类和方法分开的形式

    // 目录和文件都小写, 重要的事情才大写
    
    // 类的名字首字母大写
    #include <iostream>
    #include <string>
    
    #include "Per.h"
    
    Person::Person()
    {
      std::cout << "构造函数: " << this->testAbc << '
    ';
    }
    Person::~Person()
    {
      std::cout << "析构函数: " << this->testAbd << '
    ';
    }
    
    
    void Person::setpid(int pid)
    {
        this->_pid = pid; // this 表示当前对象下的_pid
    }
    int Person::getpid()
    {
      return this->_pid;
    }
    
    void Person::setname(string name)
    {
      this->_name = name;
    }
    string Person::getname()
    {
      return _name;
    }
    
    void Person::setage(int age)
    {
      this->_age = age;
    }
    int Person::getage()
    {
      return _age;
    }
    
    int main(){
      // 锦绣城, 双滦区 2区观鱼园
      // -----普通方式----- //
      /*
      Person per;
      per.setpid(1);
      per.setname("tom");
      per.setage(20);
    
      int pid = per.getpid();
      string name = per.getname();
      int age = per.getage();
    
      std::cout << "pid: " << pid << "  ";
      std::cout << "name: " << name<< "  ";
      std::cout << "age: " << age << '
    ';
      */
    
      // -----指针方式-----//
      Person *per = new Person();
      per->setpid(1);
      per->setname("Baker");
      per->setage(20);
    
      int pid = per->getpid();
      string name = per->getname();
      int age = per->getage();
      //  delete前打印的  //
      std::cout << "pid: " << pid << "  ";
      std::cout << "name: " << name<< "  ";
      std::cout << "age: " << age << '
    ';
      
      delete per;
    
      //  delete 后打印的  //
      std::cout << "pid: " << pid << "  ";
      std::cout << "name: " << name<< "  ";
      std::cout << "age: " << age << '
    ';
    
      return 0;
    }
    app.cpp
    #include <iostream>
    #include <string>
    using namespace std;
    class Person
    {
        private:
            int _pid;
            string _name;
            int _age;
    
        public:
          int testAbc = 123;
          int testAbd = 124;
    
            Person();
            ~Person();
    
            void setpid(int pid);
            int getpid();
    
            void setname(string name);
            string getname();
    
            void setage(int age);
            int getage();
    };
    Per.h
  • 相关阅读:
    VC++界面编程个性化你的工具栏图标(转)
    C/C++指令 #undef ,#ifdef, #ifndef,#if的用法(转)
    为自定义工具栏按钮添加消息响应函数
    VC++深入详解:函数的重载 (转)
    NP和P问题
    How To Compile A Kernel The Ubuntu Way
    【转】关闭对话框,OnClose和OnCancel MFC中屏蔽ESC和回车关闭对话框
    MFC学习笔记之ClassWizard
    《c专家编程》学习笔记一
    <转>C语言中的文件输入输出函数
  • 原文地址:https://www.cnblogs.com/renfanzi/p/9040586.html
Copyright © 2011-2022 走看看