nn的博客

记录点滴过程

C++学习5访问限制、初始化、对象组合

访问限制

Private只有成员函数可以访问

注意:本笔记来自网易云课堂学习

例子:
#pragma once
class A
{
public:
 A();
 ~A();
 void g(A*);
 void set(int);
private:
 int i;
 int c;
};

 

#include "A.h"
#include<iostream>
using namespace std;

A::A()
{
}

A::~A()
{
}
void A::g(A * q)
{
 cout << q->i << endl;//同一个类的私有变量可以访问!
}
void A::set(int ii)
{
 i = ii;
}
#include "A.h"
int main()
{
 A *p = new A[10];//开辟一个空间10个对象
 for (int i = 0; i < 10;i++)
 {
  p[i].set(i);//这里p就相当于数组的名字,首地址
 }
 A b;
 b.set(100);//将b中的变量i设置成100
 p[0].g(&b);//将p[0]的i设置成b中的i的值。
 delete[] p;//有new就要有delete
 return 0;
}
==========

 

Friend是在类中声明,那个声明的那个函数或者类,可以访问这个类的私有成员。

 

struct X;

Struct Y(X*)//这里必须是X*不能是X c 不然就绕不出来了

{

}

Struct X{

Private:

Int I;

Public:

Friend void Y::f(X*)
}

 

Struct 和class 的区别

如果没有private ,那么struct默认为是public;而class 默认为是private;

 

如果类很简单只有几个数字,可以用struct,其他用class

 

初始化

初始化变量的值可以在初始化函数中

也可以在初始化函数名后加:给出值例如:

A():i(0){ }

 

还例如:

class point

{

private:

const float x,y;

point (float xa=0.0,ya=0.0):x(xa),y(ya)//构造函数

{ }

}

这样实际上,x,y的赋值要早于构造函数

 

建议初始化都在构造函数前,不然可能找不到初始化函数

 

 

 

 

 

对象组合

把已有的对象组合来实现软件重用

用对象来制造对象


定义的类person和currency是savingsaccount的成员变量

 

fully(上面例子中的直接的引用)

reference(使用指针)

 

要对包含的这两个类都初始化

构造函数SavingAccount::SavingAccuount(constchar* name,const* char*address,int cents)

m_saver(name),m_balance(0,cents){ }

 

如果把person类型的对象,定义在public中,那么就相当于外界可以访问内部的量。

例如:savingaccount A;//person中有set_name函数

A.person.set_name(“lily”)

阅读更多
个人分类: C++
上一篇C++学习4构造函数和new delete
下一篇C++学习6继承
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭