๐ Scenario: You are creating a simple program to represent a book in a library system.
๐ฏ Goal: Build a C++ class called Book with basic information and display it.
๐ What You'll Learn
Create a class named Book
Add two public member variables: title and author of type std::string
Create an object of class Book with specific values
Print the book's title and author
๐ก Why This Matters
๐ Real World
Classes like <code>Book</code> help organize data in programs such as library management systems or book stores.
๐ผ Career
Understanding class syntax is essential for software development jobs that use C++ for building applications with structured data.
Progress0 / 4 steps
1
Create the Book class with public member variables
Write a class definition named Book with two public std::string variables: title and author.
C++
Hint
Use class Book { public: std::string title; std::string author; };
2
Create a Book object with specific values
Create a Book object named myBook. Set myBook.title to "The Great Gatsby" and myBook.author to "F. Scott Fitzgerald".
C++
Hint
Use Book myBook; then assign values with myBook.title = "The Great Gatsby"; and myBook.author = "F. Scott Fitzgerald";
3
Add code to print the book's title and author
Inside main(), add std::cout statements to print myBook.title and myBook.author on separate lines.
C++
Hint
Use std::cout << myBook.title << std::endl; and similarly for author.
4
Run the program to display the book details
Run the program. It should print the title The Great Gatsby on the first line and the author F. Scott Fitzgerald on the second line.
C++
Hint
Make sure you run the program and check the output matches exactly.
Practice
(1/5)
1. What is the correct way to start defining a class named Car in C++?
easy
A. class Car { };
B. define Car { };
C. Car class { };
D. class = Car { };
Solution
Step 1: Recognize the class keyword usage
In C++, a class is defined using the keyword class followed by the class name and curly braces.
Step 2: Check the syntax correctness
The correct syntax is class Car { }; with a semicolon at the end.
Final Answer:
class Car { }; -> Option A
Quick Check:
class keyword + name + braces + semicolon = correct [OK]
Hint: Use 'class ClassName { };' to define a class [OK]
Common Mistakes:
Omitting the semicolon after the class definition
Using 'define' instead of 'class'
Placing '=' between class and name
2. Which of the following is the correct syntax to declare a public member function start() inside a class?
easy
A. public void start();
B. void public start();
C. void start() public;
D. public: void start();
Solution
Step 1: Understand access specifier placement
In C++, access specifiers like public: are labels followed by a colon, not keywords before functions.
Step 2: Identify correct function declaration
The function declaration inside the class is void start(); placed under the public: label.
Final Answer:
public: void start(); -> Option D
Quick Check:
Access specifier label + function declaration = correct [OK]
Hint: Use 'public:' label before members, not before return type [OK]
Common Mistakes:
Writing 'public' before return type without colon
Placing 'public' after function parentheses
Using 'void public' which is invalid
3. What will be the output of this code?
class Box {
public:
int length;
};
int main() {
Box b;
b.length = 10;
std::cout << b.length << std::endl;
return 0;
}
medium
A. Compilation error
B. 10
C. 0
D. Undefined behavior
Solution
Step 1: Analyze class and member access
The class Box has a public integer member length, so it can be accessed and assigned outside the class.
Step 2: Trace the main function execution
An object b is created, b.length is set to 10, then printed. This will output 10.
Final Answer:
10 -> Option B
Quick Check:
Public member assigned 10, printed 10 [OK]
Hint: Public members can be accessed and printed directly [OK]
Common Mistakes:
Assuming private by default causes error
Forgetting to assign value before printing
Expecting zero because of uninitialized variable
4. Identify the error in this class definition:
class Person {
string name;
public:
void setName(string n) {
name = n;
}
};
medium
A. Missing semicolon after class definition
B. Member variable 'name' should be public
C. Missing #include <string> and std:: prefix
D. Function setName should return string
Solution
Step 1: Check for syntax errors
The class ends with a semicolon, so no missing semicolon error.
Step 2: Check usage of string type
The code uses string without including <string> header and without std:: prefix, which causes compilation error.
Final Answer:
Missing #include <string> and std:: prefix -> Option C
Quick Check:
Use #include and std::string for string type [OK]
Hint: Always include <string> and use std::string in C++ [OK]
Common Mistakes:
Assuming string is built-in without include
Thinking private members must be public to work
Expecting setName to return a value
5. You want to define a class Rectangle with private members width and height, and a public function area() that returns the area. Which is the correct class definition?
hard
A. class Rectangle {
private:
int width, height;
public:
int area() { return width * height; }
};
B. class Rectangle {
public:
int width, height;
int area() { return width * height; }
};
C. class Rectangle {
int width, height;
int area() { return width * height; }
};
D. class Rectangle {
private:
int width, height;
int area() { return width * height; }
};
Solution
Step 1: Identify private members declaration
Private members must be declared under private: label to restrict access.
Step 2: Confirm public function declaration
The function area() should be public to allow access from outside.
Step 3: Check for correct syntax and placement
class Rectangle {
private:
int width, height;
public:
int area() { return width * height; }
}; correctly places width and height as private and area() as public with proper syntax.
Final Answer:
class Rectangle {
private:
int width, height;
public:
int area() { return width * height; }
}; -> Option A
Quick Check:
Private data + public method = correct class design [OK]
Hint: Use 'private:' for data, 'public:' for functions in class [OK]
Common Mistakes:
Forgetting access specifiers, making members public by default
Placing function inside private when it should be public
Omitting semicolon after class definition
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.