What happens when you attempt to compile and run the following code?
#include
using namespace std;
class BaseC
{
int *ptr;
public:
BaseC() { ptr = new int(10);}
BaseC(int i) { ptr = new int(i); }
~BaseC() { delete ptr; }
void Print() { cout << *ptr; }
};
int main()
{
BaseC *o = new BaseC(5);
o?>Print();
}
Suggested Answer: D
Get Premium CPA-21-02 Questions
as Interactive Web-Based Practice Test or PDF
Real Exam Format
Detailed Explanations
Instant Access
Get Your Practice Test
44 comments · newest first
DA
Darrin
11 months ago
Not sure about that, seems off to me.
AR
Arlette
11 months ago
I thought it would print 10, not 5.
KI
Kimbery
11 months ago
Wait, how does it even compile with that `?>`?
SV
Svetlana
11 months ago
Totally agree, it's definitely 5!
CL
Clarence
11 months ago
It prints: 5
VE
Veronica
12 months ago
Wait, did I miss something? I thought the default constructor would set it to 10, but this one uses the parameter. So, it should be 5, right?
AL
Albert
12 months ago
I practiced a similar question, and I feel like it should print 5 since that's the value passed to the constructor.
SA
Sarah
12 months ago
I'm not entirely sure, but I remember something about how pointers work in constructors. Could it be 10 instead?
ME
Merilyn
1 year ago
I think the code should print 5 because the constructor with the parameter is called.
DE
Desmond
1 year ago
This is a good test of understanding pointers and object lifetime. I'll carefully walk through the code and think about when the objects are created and destroyed to determine the output. I'm confident I can get the right answer.
FR
Francine
1 year ago
Ah, I see what's going on now. The line "o->Print();" is using the pointer directly, so it will print the value that the pointer is pointing to, which is 5. The answer is A.
TA
Talia
1 year ago
I'm a bit confused here. The constructor with the int argument creates a new int and assigns the pointer to it, but the default constructor creates a pointer to 10. I'm not sure which one will be used in the end. I'll have to guess on this one.
TE
Tennie
1 year ago
Okay, let me think this through step-by-step. We're creating a BaseC object with the argument 5, so the int pointer should be pointing to 5. Then we're calling the Print() method, which should print the value of the pointer. I'll go with option A.
MA
Malcolm
1 year ago
Hmm, this looks like a tricky one. I'll need to carefully trace the code execution to figure out what's happening with the pointers and object creation.
TH
Theron
1 year ago
I'm a bit confused by this one. The question doesn't give a lot of context, so it's hard for me to determine the right answer. I'll have to make an educated guess.
GE
Gene
1 year ago
Definitely DHCP. I remember learning about that in class, it's the protocol that dynamically assigns IP addresses to devices on a network.
LY
Lynna
1 year ago
Okay, I've got this. The key is to identify which option covers a global-level configuration for time tracking, rather than a project-specific or user-specific setting.
PH
Phil
1 year ago
Okay, I think I've got this. I'll select the paragraphs, then use the Bullets option to format them properly.
LA
Lanie
1 year ago
I'm going to go with B. It's the most likely option, and I'm not going to overthink this. Time to move on to the next question!
RO
Rodrigo
1 year ago
Yep, the correct answer is: 5
LE
Leah
1 year ago
I agree, it should print: 5
PA
Pamella
1 year ago
I think it prints: 5
DO
Donte
1 year ago
Haha, this is a classic pointer-related question. I bet the answer is B, just to mess with us all!
VA
Valentin
1 year ago
User 3: I'm going with C on this one.
WE
Weldon
1 year ago
User 2: No way, it's definitely B.
KA
Kayleigh
1 year ago
User 1: I think the answer is A.
ME
Melinda
1 year ago
Wait, are we sure the object is being deleted properly? If there's a memory leak, it might print some random value like 1 or 0.
CH
Chantell
1 year ago
User3: Wait, but what if there's a memory leak? It could print a random value.
MA
Marguerita
1 year ago
User2: Yeah, it should print 5 since we're passing 5 to the constructor.
DO
Dorsey
1 year ago
Always remember to properly manage memory in your code.
YU
Yuette
1 year ago
Memory leaks can cause unexpected values to be printed.
JI
Jillian
1 year ago
User1: It prints: 5
MI
Micaela
1 year ago
It prints: 5
LA
Lawrence
1 year ago
Make sure to check for memory leaks in the code.
LA
Lai
1 year ago
That makes sense, but I'm not sure. Let's see what others think.
NG
Nguyet
1 year ago
I believe the answer is A) It prints: 5 because the object is initialized with 5.
SH
Sharen
2 years ago
Hmm, I'm not so sure. What if the compiler optimizes the code and the object ends up being created with the default constructor instead of the one that takes an argument? Then it would print 10.
CA
Candra
1 year ago
User 2: I think it prints: 10
MA
Mary
1 year ago
User 1: It prints: 5
LA
Lai
2 years ago
I think the answer is B) It prints: 10.
BR
Brynn
2 years ago
The code will print 5, as we create a BaseC object with the constructor that takes an integer argument and pass in the value 5.
ED
Eden
1 year ago
C) It prints: 5
VA
Van
1 year ago
B) It prints: 5
LE
Leana
1 year ago
A) It prints: 5