How do you use smart pointers when trying to call a library function that was written before smart pointers were developed? Instead of passing smart pointers to functions, normally, you'll retrieve the smart-pointer's raw pointer using get(), and call the function with that. Complete the code below to double Frank's salary and to print his information. You may use a shared_ptr or a unique_ptr.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

C++

How do you use smart pointers when trying to call a library function that was written before smart
pointers were developed? Instead of passing smart pointers to functions, normally, you'll retrieve the
smart-pointer's raw pointer using get(), and call the function with that. Complete the code below to
double Frank's salary and to print his information. You may use a shared_ptr or a unique_ptr.
memory.cpp
1 #include <iostream>
2 #include <string>
3 #include <memory>
4 using namespace std;
5
6 struct Employee {
string name;
double salary;
9 };
10 void print(const Employee* ep);
11 void raiseSalary(Employee* ep, double byPercent);
7
8
12
13 int main()
14 {
15
Employee *frank = new Employee{"Frank Ghiradelli", 24000.0};
raiseSalary(frank, 100.0); // double
print(frank); // print
16
17
18 }
CodeCheck
Reset
Transcribed Image Text:How do you use smart pointers when trying to call a library function that was written before smart pointers were developed? Instead of passing smart pointers to functions, normally, you'll retrieve the smart-pointer's raw pointer using get(), and call the function with that. Complete the code below to double Frank's salary and to print his information. You may use a shared_ptr or a unique_ptr. memory.cpp 1 #include <iostream> 2 #include <string> 3 #include <memory> 4 using namespace std; 5 6 struct Employee { string name; double salary; 9 }; 10 void print(const Employee* ep); 11 void raiseSalary(Employee* ep, double byPercent); 7 8 12 13 int main() 14 { 15 Employee *frank = new Employee{"Frank Ghiradelli", 24000.0}; raiseSalary(frank, 100.0); // double print(frank); // print 16 17 18 } CodeCheck Reset
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 2 images

Blurred answer
Knowledge Booster
Function Arguments
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education