add AbstractClasses and a HeapMemory program.
the AbstractClasses problem experiments with abstract classes and the HeapMemory program experiments with heap memory.
This commit is contained in:
parent
3405208295
commit
9a72aa2728
3 changed files with 65 additions and 0 deletions
38
src/AbstractClasses.cc
Normal file
38
src/AbstractClasses.cc
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#include <iostream>
|
||||||
|
class Bean {
|
||||||
|
public:
|
||||||
|
virtual void print_type() {}
|
||||||
|
virtual void print_sus_level() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class Crewmate : public Bean {
|
||||||
|
void print_type() override
|
||||||
|
{
|
||||||
|
std::cout << "i am a crewmate. unsus." << std::endl;
|
||||||
|
}
|
||||||
|
void print_sus_level() override
|
||||||
|
{
|
||||||
|
std::cout << "sus levels are quite low" << std::endl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class Imposter : public Bean {
|
||||||
|
void print_type() override
|
||||||
|
{
|
||||||
|
std::cout << "i am an imposter. very unsus." << std::endl;
|
||||||
|
}
|
||||||
|
void print_sus_level() override
|
||||||
|
{
|
||||||
|
std::cout << "sus levels are very high." << std::endl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
Bean* beans[2] = {new Crewmate, new Imposter};
|
||||||
|
|
||||||
|
for (Bean *bean : beans) {
|
||||||
|
bean->print_type();
|
||||||
|
bean->print_sus_level();
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,3 +8,5 @@ add_executable(enumerations enumerations.cc)
|
||||||
add_executable(namespaces namespaces.cc)
|
add_executable(namespaces namespaces.cc)
|
||||||
add_executable(FunctionArguments FunctionArguments.cc)
|
add_executable(FunctionArguments FunctionArguments.cc)
|
||||||
add_executable(exceptions exceptions.cc)
|
add_executable(exceptions exceptions.cc)
|
||||||
|
add_executable(HeapMemory HeapMemory.cc)
|
||||||
|
add_executable(AbstractClasses AbstractClasses.cc)
|
||||||
|
|
25
src/HeapMemory.cc
Normal file
25
src/HeapMemory.cc
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
class Heap {
|
||||||
|
public:
|
||||||
|
Heap() {
|
||||||
|
sus = (std::string*)malloc(sizeof(std::string));
|
||||||
|
*sus = "sus";
|
||||||
|
}
|
||||||
|
~Heap() {
|
||||||
|
free(sus);
|
||||||
|
}
|
||||||
|
void print_string() {
|
||||||
|
auto susi = *(this->sus);
|
||||||
|
std::cout << *(this->sus) << std::endl;
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
std::string* sus;
|
||||||
|
};
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
Heap* heap = new Heap();
|
||||||
|
heap->print_string();
|
||||||
|
delete heap;
|
||||||
|
}
|
Loading…
Reference in a new issue