Q1.Define class Student with the following attributes and member functions.
i. Date of Birth (constant data member) ii. Pointer to char for name iii. Pointer to char for Department iv. Student ID (constant data member) v. Member function Constructors vi. Member function Destructor vii. Member function to modify state of the object viii. Member function to display state of the object (should be constant) Note that pointers in (ii) and (iii) should point to the dynamic memory allocated for name and Department name. Get information of the student object in constructor. Memory for name and Department will be allocated in constructor using dynamic memory allocation. Destructor will release memory to the operating system.
Q.3. Extend Q.2 for shallow and deep copy constructor
/* Implementation for the PositiveInteger Class (PositiveInteger.cpp) */
#include <iostream>
#include <stdexcept> // Needed for exception handling
#include "PositiveInteger.h"
using namespace std;
// Constructor with input validation
PositiveInteger::PositiveInteger(int value) {
// Call setter to perform input validation
setValue(value);
}
// Setter with input validation
void PositiveInteger::setValue(int v) {
if (v > 0) {
value = v;
} else {
throw invalid_argument("value shall be more than 0.");
// need <stdexcept>
}
}
// Getter
int PositiveInteger::getValue() const {
return value;
}
Comments
Leave a comment