Tag "OOP" (4)
C++: Перегрузка арифметичкских операторов
Арифметические операторы: +; -; *; /
Логические операторы: ==; != ... Reveal Code
class %T% {
public:
%T%() {
//Constructor
}
virtual ~%T%() {
//Destructor
}
public:
// Arithmetic operators
friend const %T% operator+(const %T%&, const %T%&);
friend const %T% operator-(const %T%&, const %T%&);
friend const %T% operator*(const %T%&, const %T%&);
friend const %T% operator/(const %T%&, const %T%&);
// Logic operators
friend const %T% operator==(const %T%&, const %T%&);
friend const %T% operator!=(const %T%&, const %T%&);
};
// Arithmetic operators
const %T% operator+(const %T% &lval, const %T% &rval) {
//body
}
const %T% operator-(const %T% &lval, const %T% &rval) {
//body
}
const %T% operator*(const %T% &lval, const %T% &rval) {
//body
}
const %T% operator/(const %T% &lval, const %T% &rval) {
//body
}
// Logic operators
const %T% operator==(const %T% &lval, const %T% &rval) {
//body
}
const %T% operator!=(const %T% &lval, const %T% &rval) {
return !(ival == rval);
}
C++: Простейший functor
Простейший пример функтора ... Reveal Code
class %FUNCTOR_NAME% {
public:
explicit %FUNCTOR_NAME%() {
//Constructor
}
virtual ~%FUNCTOR_NAME%() {
//Destructor
}
void operator()() {
//Functor body
}
};
C++: Функция main()
Функция main в стиле ООП
Содержит:
* Заготовка главного класса приложения.
* Перехватчик необработанных исключений ... Reveal Code
class %APP_NAME% {
public:
explicit %APP_NAME%() {
//Constructor
}
virtual ~%APP_NAME%() {
//Destructor
}
int run() const {
//Program body
return 0;
}
};
int main(int argc, char const *argv[], char const *env[]) {
int exitCode = 1;
try {
exitCode = %APP_NAME%.run();
}
catch(...) {
throw;
}
return exitCode;
}
C++: Private members
access to private members ... Reveal Code
class Foo {
private:
char a;
int b;
float c;
public:
Foo() : a('a'), b(10), c(3.5f) {}
};
#include
int main() {
Foo* foo = new Foo();
std::cout«"hello world " « *((float*) ((void*) foo)+2);
delete foo;
return 0;
}