• 【C++/类与对象总结】


     

     1.以上是对本章知识的大致梳理,下面通过我自己在编程中遇到的问题再次总结。

    1. 私有成员必须通过get()函数访问吗?能不能直接调用?
      • 私有成员必须通过公共函数接口去访问,比如设置set()修改成员内容,利用get()取值。
      • 另外还可以利用友元访问#include<iostream>
        using namespace std;

        class B;
        class A
        {
        friend B;
        public:
        A(){}
        ~A(){}
        private:
        void print(){cout << "It's in A class" << endl;}
        };

        class B
        {
        public:
        B(){}
        ~B(){}
        void test(){a.print();}//A的私有成员函数直接调用
        private:
        A a;
        };

        int main()
        {
        B b;
        b.test();
        system("pause");
        return 0;
        }
    2. 构造函数()要不要写出参数?
      1. 在类中构造函数必须要有形参,可以给定默认值参数,也可以不给。对象初始化可以通过对象.(参数),也可以通过对象.set()修改默认值。
    3. 使用内联示例:
       1 #include<iostream>
       2 using namespace std;
       3 class Dog{
       4     public:
       5         Dog(int initage=0,int initweight=0);
       6         ~Dog();
       7         int GetAge(){
       8             return age;
       9         }//内联隐式函数 
      10         void setage(int ages){
      11             age=ages;
      12         }  
      13         int getweight(){
      14             return weight;
      15         }
      16         void setweight(int weights){
      17             weight=weights;
      18         }
      19         
      20     private:
      21         int age;int weight;
      22 }; 
      23     Dog::Dog(int initage,int initweight){
      24         age=initage; 
      25         weight=initweight;
      26     }
      27     Dog::~Dog(){
      28     }
      29     int main(){
      30         Dog a;
      31         cout<<a.getweight();
      32         return 0;
      33     }
      View Code

     4.结构体和共同体:定义一个"数据类型" datatype类,能处理包含字符型、整型、浮点型三种类型的数据,给出其构造函数。

     1 #include <iostream>
     2 using namespace std;
     3  class datatype{
     4  enum{ character, integer,  floating_point } vartype;
     5  union  {  char c; int i; float f; }; 
     6  public:  datatype(char ch)
     7  { vartype = character; c = ch; } 
     8  datatype(int ii) { 
     9 vartype = integer; i = ii; } 
    10 datatype(float ff) { 
    11 vartype = floating_point; f = ff; } 
    12 void print(); }; 
    13 void datatype::print() { switch (vartype) { case character: 
    14 cout << "字符型: " << c << endl; break15 case integer: 
    16 cout << "整型: " << i << endl; break17 case floating_point: 
    18 cout << "浮点型: " << f << endl; break; } } 
    19 void main() { 
    20 datatype A('c'), B(12), C(1.44F);
    21 A.print(); 
    22 B.print(); 
    23 C.print(); 
    24 }
    View Code

  • 相关阅读:
    sql语句 之聚合函数
    UML类图几种关系的总结
    关于Object.defineProperty的get和set
    devDependencies和dependencies的区别
    函数声明和函数表达式的区别
    移动端滑屏滚动事件的问题(横向滑动阻止垂直页面滚动)
    使用Cordova和JQM在ios上需要注意的问题
    阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return fal的区别
    有关闭包的总结
    CSS命名规范——BEM思想(非常赞的规范)
  • 原文地址:https://www.cnblogs.com/yitou13/p/8660476.html
Copyright © 2020-2023  润新知