effective c++ 条款23 perfer nonmember nonfreind function to member function


/*
 * main.cpp
 *
 *  Created on: Sep 23, 2015
 *      Author: lili0506
 */


#include"Rational.h"


int main()
{
	Rational oneFourth(1,4);
	Rational result;
	result = oneFourth * 2;
	result = 2 * oneFourth;
}




/*
 * Rational.cpp
 *
 *  Created on: Sep 23, 2015
 *      Author: lili0506
 */

#include "Rational.h"

Rational::Rational(int n, int d) :
		numerator(n),
		denominator(d)
{
	// TODO Auto-generated constructor stub

}

Rational::~Rational()
{
	// TODO Auto-generated destructor stub
}
int Rational::getDenominator() const
{
	return denominator;
}

void Rational::setDenominator(int denominator)
{
	this->denominator = denominator;
}

int Rational::getNumerator() const
{
	return numerator;
}

void Rational::setNumerator(int numerator)
{
	this->numerator = numerator;
}


Rational operator*(const Rational & l,const Rational &r)
{
	return Rational(l.getDenominator() * r.getDenominator(), l.getNumerator() * l.getNumerator());

}

/*
 * Rational.h
 *
 *  Created on: Sep 23, 2015
 *      Author: lili0506
 */

#ifndef RATIONAL_H_
#define RATIONAL_H_

class Rational
{
	public:
		Rational(int n = 0, int d = 1);
		virtual ~Rational();

		int getDenominator() const;

		void setDenominator(int denominator);

		int getNumerator() const;
		void setNumerator(int numerator);

	private:
		int numerator;
		int denominator;
};

Rational operator*(const Rational & l,const Rational &r);

#endif /* RATIONAL_H_ */


makefile文件

.SUFFIXES: .cpp .o
 
CC=g++

SRC=Rational.cpp main.cpp
OBJ= $(SRC:.cpp=.o)
TRAGET=main
 
all:$(TRAGET)

main:$(OBJ)
	$(CC) -o $@ $^
	
.cpp.o:
	$(CC) -o $@ -c $<
	
clean:
	rm -rf $(OBJ) $(TRAGET)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值