【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

 

posted @ 2018-03-27 21:50  一头  阅读(1702)  评论(0编辑  收藏  举报