Skip to content

Instantly share code, notes, and snippets.

View kateolenya's full-sized avatar

Kateryna kateolenya

View GitHub Profile
@kateolenya
kateolenya / private_var.c
Last active March 14, 2019 10:32
Private variables in struct in C
#include "private_var.h"
#include <stdio.h>
#include <stdlib.h>
struct Contact
{
int mobile_number;
int home_number;
};
@kateolenya
kateolenya / private_var.h
Last active March 20, 2019 17:40
Private variables in struct in C
#ifndef PRIVATE_VAR
#define PRIVATE_VAR
struct Contact;
struct Contact * create_contact();
void delete_contact( struct Contact * some_contact );
#endif /* PRIVATE_VAR */
@kateolenya
kateolenya / main.c
Last active March 14, 2019 10:33
Bypassing encapsulation with pointers in C
#include "private_var.h"
#include <stdio.h>
int main()
{
struct Contact * Tony;
Tony = create_contact();
int * mobile_number_is_here = (int *)Tony;
printf("Mobile number: %d\n", *mobile_number_is_here);
@kateolenya
kateolenya / main.c
Created March 14, 2019 22:02
Private function in C using static
#include "private_funct.h"
int main()
{
struct Contact * Tony;
Tony = create_contact();
// print_numbers( Tony );
// will cause compile time error
delete_contact( Tony );
return 0;
@kateolenya
kateolenya / private_funct.c
Created March 14, 2019 22:03
Private function in C using static
#include "private_funct.h"
#include <stdio.h>
#include <stdlib.h>
struct Contact
{
int mobile_number;
int home_number;
};
@kateolenya
kateolenya / private_funct.h
Created March 14, 2019 22:04
Private function in C using static
#ifndef PRIVATE_FUNCT_H
#define PRIVATE_FUNCT_H
struct Contact;
struct Contact * create_contact();
static void print_numbers( struct Contact * some_contact );
void delete_contact( struct Contact * my_points );
#endif /* PRIVATE_FUNCT_H */
@kateolenya
kateolenya / basic_inheritance.cpp
Last active March 29, 2019 11:16
Basic example of inheritance in C++
#include <iostream>
using namespace std;
class Device {
public:
int serial_number = 12345678;
void turn_on() {
cout << "Device is on" << endl;
}
@kateolenya
kateolenya / private_inheritance.cpp
Last active March 22, 2019 12:02
Example of private inheritance in C++
#include <iostream>
using namespace std;
class Device {
public:
int serial_number = 12345678;
void turn_on() {
cout << "Device is on" << endl;
}
@kateolenya
kateolenya / constructor.cpp
Last active March 29, 2019 11:22
Process of calling inherited constructors and destructors in C++
#include <iostream>
using namespace std;
class Device {
public:
// constructor
Device() {
cout << "Device constructor called" << endl;
}
// destructor
@kateolenya
kateolenya / diamond_problem.cpp
Last active March 29, 2019 11:34
Example of diamond problem in C++
#include <iostream>
using namespace std;
class Device {
public:
void turn_on() {
cout << "Device is on." << endl;
}
};