Chinaunix首页 | 论坛 | 博客
  • 博客访问: 201386
  • 博文数量: 37
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-23 21:00
个人简介

潜心静气。。慢慢出成果

文章分类

全部博文(37)

文章存档

2018年(5)

2017年(6)

2016年(23)

2015年(3)

我的朋友

分类: C/C++

2016-09-28 18:31:40

很久没有学习C++了,最近工作转向Android了,本人的志向则是从linux drivers一直研究到HAL和JNI Framwork JAVA
慢慢的学习路程,从C++开始吧。
C++的class的声明定义
class内有public:外部函数可以访问。可以被外部函数访问。
private;只能通过内部函数访问,只能被本类的其他函数访问,或者友元类访问。 
protected :访问权限受保护。
一般数据放在private,用于保证对象的封闭稳定,函数则为外界提供调用接口。
如下:
class CFindRoot{--定义一个CFindRoot的类。
public:
    void SetData(float x,float y,float z);
    void Find(void);
    void Display(void);
private:
    float a,b,c,delta;
    double x1,x2;
};结束标志。
成员函数的定义:
函数的访问权限:private或public 
在类内定义成员函数,其默认为inline函数,直接编译到调用点,减少调用时间。
也可以在类内声明,类外定义。
#include
#include
#include "FindRoot.h"
using namespace std;
void CFindRoot::SetData(float x,float y,float z)
{
    a=x;b=y;c=z;
    delta=b*b-4*a*c;
}
void CFindRoot::Find(void)
{
    if(delta>0)
    {
        x1=(-b+sqrt(delta)/2*a);
        x2=(-b-sqrt(delta)/2*a);
        return ;
    }
    else if(delta==0)
    {
         x1=x2=(-b)/(2*a);
        return ;
    }
    else
    {
         x1=(-b)/(2*a);
         x2=(-b-sqrt(delta)/2*a);
         return ;
    }
}
void CFindRoot::Display(void)
{
    if(delta>0)
    {
        cout<<"x1="<         return ;
    }
    else if(delta==0)
    {
        cout<<"x1=x2="<         return ;
    }
    else
    {
        cout<<"x1="<     }
}
int main(void)
{
    CFindRoot obj1,obj2,*obj3;
    CFindRoot &obj4=obj2;
    obj3=&obj2;
    obj1.SetData(1,2,3);obj1.Find();obj1.Display();
    obj3->SetData(3,4,5);obj3->Find();obj3->Display();
    obj4.SetData(7,8,9);obj2.Find();obj2.Display();
    return 0;
}
class 的对象变量,可以是CFindRoot obj1 直接调用。
定义对象指针,指向调用。
定义引用对象。引用对象跟被引用对象是一个对象。
在main函数中只能使用public成员,private protected则不允许使用。

对象直接的内存分配则是:
数据成员为单独分配,公有成员函数则共同分配,依靠this指针来调用。this指针指向对象。
类对象在调用成员函数时,成员函数除了接受参数外,还要接受对象的地址,这个地址被this指针获取,相当于&this=&r1,
void CRect:: set(int x,int y,int z)
{
top=x; -> this->top=t;
}


阅读(3553) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~