
u09.cpp
#include <iostream>
class Demo {
public:
int a;
int b;
int do_something() {
return a + b;
}
};
int main() {
Demo d;
d.a = 11;
d.b = 22;
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u09.cpp
2014-02 */u0901_1.cpp
#include <iostream>
class Demo {
public:
int a;
int b;
Demo() {
std::cout << "constructor.."
<< std::endl;
a = 22;
b = 33;
}
int do_something() {
return a + b;
}
};
int main() {
Demo d;
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0901_1.cpp
2014-02 */u0901_2.cpp
#include <iostream>
class Demo2 {
public:
int a;
int b;
Demo2() {
a = 22;
b = 33;
}
Demo2(int pa, int pb) {
a = pa;
b = pb;
}
int do_something() {
return a + b;
}
};
int main() {
Demo2 d(33, 44);
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0901_2.cpp
2014-02 */u0902.cpp
#include <iostream>
class Demo {
public:
int a;
int b;
Demo(int pa, int pb): a(pa), b(pb) {
std::cout << "constructor.."
<< std::endl;
}
int do_something() {
return a + b;
}
};
int main() {
Demo d(55, 44);
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0902.cpp
2014-02 */u0903_1.cpp
#include <iostream>
class Demo {
public:
int a;
Demo(int pa) {
a = pa;
}
void do_something() {
std::cout << a
<< std::endl;
}
};
int main() {
Demo d = 3;
d.do_something();
return 0;
}
/* Kaiching Chang
u0903_1.cpp
2014-02 */u0903_2.cpp
#include <iostream>
class Demo {
public:
int a;
explicit Demo(int pa) {
a = pa;
}
void do_something() {
std::cout << a
<< std::endl;
}
};
int main() {
Demo d = 3;
d.do_something();
return 0;
}
/* Kaiching Chang
u0903_2.cpp
2014-02 */u0904.cpp
#include <iostream>
class Demo {
public:
Demo(int pa, int pb) {
a = pa;
b = pb;
}
int do_something() {
return a + b;
}
private:
int a;
int b;
};
int main() {
Demo d(12, 10);
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0904.cpp
2014-02 */u0904_1.cpp
#include <iostream>
class Demo {
public:
Demo(int pa, int pb) {
a = pa;
b = pb;
}
int do_something() {
return a + b;
}
private:
int a;
int b;
};
int main() {
Demo d(12, 10);
std::cout << d.a
<< std::endl;
return 0;
}
/* Kaiching Chang
u0904_1.cpp
2014-02 */u0905.cpp
#include <iostream>
class Demo {
public:
Demo(int pa, int pb) {
a = pa;
b = pb;
}
int do_something() {
return a + b;
}
protected:
int a;
int b;
};
int main() {
Demo d(12, 10);
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0905.cpp
2014-02 */u0906.cpp
#include <iostream>
class Demo {
public:
Demo(int pa, int pb) {
set_a(pa);
set_b(pb);
}
int get_a() {
return a;
}
int get_b() {
return b;
}
void set_a(int pa) {
a = pa;
}
void set_b(int pb) {
b = pb;
}
private:
int a;
int b;
};
int main() {
Demo d(12, 10);
std::cout << d.get_a() + d.get_b()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0906.cpp
2014-02 */u0907.cpp
#include <iostream>
class Demo {
public:
Demo(int a, int b) {
this->a = a;
this->b = b;
}
int do_something() {
return this->a + this->b;
}
private:
int a;
int b;
};
int main() {
Demo d(22, 60);
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0907.cpp
2014-02 */u0908.cpp
#include <iostream>
class Demo {
public:
Demo(int pa, int pb) {
a = pa;
b = pb;
}
friend int do_something(Demo& d) {
return d.a + d.b;
}
friend class Demo2;
private:
int a;
int b;
};
class Demo2 {
public:
int do_something2(Demo& d) {
return d.a + d.b;
}
};
int main() {
Demo d(32, 22);
std::cout << do_something(d)
<< std::endl;
Demo2 d2;
std::cout << d2.do_something2(d)
<< std::endl;
return 0;
}
/* Kaiching Chang
u0908.cpp
2014-02 */u0909.cpp
#include <iostream>
class Demo {
public:
Demo() {
std::cout << "constructor"
<< std::endl;
count++;
}
static int get_count() {
return count;
}
private:
static int count;
};
int Demo::count = 0;
int main() {
Demo d1;
std::cout << Demo::get_count()
<< std::endl;
Demo d2;
std::cout << d2.get_count()
<< std::endl;
Demo d3;
std::cout << d3.get_count()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0909.cpp
2014-02 */u0910.cpp
#include <iostream>
class Demo {
public:
static int getDay() {
return days;
}
private:
static const int days = 30;
};
int main() {
std::cout << Demo::getDay()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0910.cpp
2014-02 */u0911.cpp
#include <iostream>
class Demo {
public:
Demo(int pa, int pb) {
a = pa;
b = pb;
}
int get_sum() const {
return a + b;
}
private:
int a;
int b;
};
int main() {
Demo d(24, 25);
std::cout << d.get_sum()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0911.cpp
2014-02 */u0912.cpp
#include <iostream>
class Demo {
public:
Demo(int pa) {
a = pa;
}
int do_something() const {
++a;
return a;
}
private:
mutable int a;
};
int main() {
Demo d(24);
std::cout << d.do_something()
<< std::endl;
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0912.cpp
2014-02 */u0913.cpp
#include <iostream>
class Demo {
public:
class Demo2 {
public:
Demo2(int a) {
d2a = a;
}
int d2a;
};
Demo2 *d2;
void do_something() {
d2 = new Demo2(34);
std::cout << d2->d2a
<< std::endl;
}
};
int main() {
Demo d;
d.do_something();
return 0;
}
/* Kaiching Chang
u0913.cpp
2014-02 */u0914.cpp
#include <iostream>
#include <string>
class Demo {
public:
Demo(std::string s) {
std::cout << "constructor"
<< std::endl;
a_ptr = new std::string;
*a_ptr = s;
}
Demo(const Demo& obj) {
std::cout << "copy constructor"
<< std::endl;
a_ptr = new std::string;
*a_ptr = *obj.a_ptr;
}
void set_a(std::string s) {
*a_ptr = s;
}
void do_something() {
std::cout << *a_ptr
<< std::endl;
}
private:
std::string *a_ptr;
};
int main() {
Demo d1("There is no spoon.");
d1.do_something();
Demo d2 = d1;
d2.do_something();
d1.set_a("What's truth?");
d1.do_something();
d2.do_something();
return 0;
}
/* Kaiching Chang
u0914.cpp
2014-02 */u0915.cpp
#include <iostream>
class Demo {
public:
Demo(int pa) {
std::cout << "constructor" << std::endl;
a_ptr = new int;
*a_ptr = pa;
}
~Demo() {
std::cout << "destructor" << std::endl;
delete a_ptr;
}
void do_something() {
std::cout << *a_ptr << std::endl;
}
private:
int *a_ptr;
};
int main(void) {
Demo d(2048);
d.do_something();
return 0;
}
/* Kaiching Chang
u0915.cpp
2014-02 */u0916.cpp
#include <iostream>
class Demo {
public:
Demo() {
a = 1;
b = 1;
}
Demo(int pa, int pb) {
a = pa;
b = pb;
}
Demo operator+(const Demo& p) {
Demo demo;
demo.a = this->a + p.a;
demo.b = this->b + p.b;
return demo;
}
void do_something() {
std::cout << a + b
<< std::endl;
}
private:
int a;
int b;
};
int main(void) {
Demo d1(2, 6);
d1.do_something();
Demo d2(10, 24);
d2.do_something();
Demo d3;
d3 = d1 + d2;
d3.do_something();
return 0;
}
/* Kaiching Chang
u0916.cpp
2014-02 */u0917.cpp
#include <iostream>
class Demo {
public:
Demo() {
a = 10;
b = 33;
}
protected:
int a;
int b;
};
class Demo2: Demo {
public:
int do_something() {
return a + b;
}
};
int main() {
Demo2 d;
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0917.cpp
2014-02 */u0918.cpp
#include <iostream>
class Demo {
public:
Demo() {
a = 702;
b = 631;
}
protected:
int a;
int b;
};
class Demo2 {
public:
Demo2() {
c = 548;
d = 255;
}
protected:
int c;
int d;
};
class Demo3: Demo, Demo2 {
public:
int do_something() {
return a + b + c + d;
}
};
int main() {
Demo3 d;
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0918.cpp
2014-02 */u0919.cpp
#include <iostream>
class Demo {
public:
virtual int do_something() {
return 1;
}
};
class Demo2: public Demo {
public:
virtual int do_something() {
return 2;
}
};
int main() {
Demo* d_ptr;
Demo2 d2;
d_ptr = &d2;
std::cout << d_ptr->do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0919.cpp
2014-02 */u0920.cpp
#include <iostream>
class Demo {
public:
Demo() {
a = 1;
b = 1;
}
int do_something() {
return a + b;
}
protected:
int a;
int b;
};
class Demo2: virtual public Demo {};
class Demo3: virtual public Demo {};
class Demo4: public Demo2,
public Demo3 {};
int main() {
Demo4 d;
std::cout << d.do_something()
<< std::endl;
return 0;
}
/* Kaiching Chang
u0920.cpp
2014-02 */the end
沒有留言:
張貼留言