RGB像素类的实现pixel.cpp

/*---------------------------------------------------*/
/*Implement of pixel class                           */
/*File name:  pixel.cpp                              */
#include "pixel.h"

//三个构造函数的实现
pixel::pixel():red(0),green(0),blue(0)
{
}

pixel::pixel(int n){
red = n;
green = n;
blue = n;
}

pixel::pixel(int r, int g, int b){
red = r;
green = g;
blue = b;
}

/*------------------------------------------*/
//+ operator 因为调用对象为运算的第一个运算数,
//形参为第二个运算数,因为要值传递,所以加上const保证不改变对象的数据成员
pixel pixel::operator +(pixel p) const{
pixel temp;
temp.red = red + p.red;
temp.green = green + p.green;
temp.blue = blue + p.blue;
return temp;
}


//友元函数可以访问类的私有成员, 只需在类的声明中说明为friend.
//因为友元函数并不是成员函数,没有任何调用对象,因此需要两个参数
pixel operator+(pixel p1,pixel p2){
pixel temp;
temp.red = p1.red + p2.red;
temp.green = p1.green + p2.green;
temp.blue = p1.blue + p2.blue;
return temp;
}

//* operator 同乘以一个double型的值
pixel pixel::operator *(double v) const{
pixel temp;
temp.red = red*v;
temp.green = green*v;
temp.blue = blue*v;
return temp;
}

// / operator 同除以一个整数
pixel pixel::operator /(int v) const{
pixel temp;
temp.red = red/v;
temp.green = green/v;
temp.blue = blue/v;
return v;
}

posted @ 2009-08-12 01:30  莫忆往西  阅读(216)  评论(0编辑  收藏  举报