ASAPInfosystemsPvtLtd Interview Question for Software Engineer / Developers


Team: SoftwareDevelopment
Country: India




Comment hidden because of low score. Click to expand.
0
of 0 vote

Implement copy constructor and operator= to perform a deep copy of the name field, e.g.

A& A::operator=(const A& other)
{
	if (other.name) {
		size_t n = strlen(other.name) + 1;
		this->name = new char[n];
		strncpy(this->name, other.name, n);
	}
}

- MrZipf December 16, 2014 | Flag Reply
Comment hidden because of low score. Click to expand.
1
of 1 vote

Hi, you need to take care of assigning an object to itself, like
a = a;

A& A::operator=(const A& other)
{
if(&other == this) return *this;

if (other.name) {
size_t n = strlen(other.name) + 1;
delete [] this->name; // also delete this-> name to avoid memory leak
this->name = new char[n];
strncpy(this->name, other.name, n);
}
return *this;
}

- Laxmi Udaseen, laxmi.udaseen@gmail.com December 17, 2014 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

Yes, you are absolutely right - this was a 2 minutes sketch during a lunch break. There is also a problem when other.name is null in the code - this.name always needs deleting.

A& A::operator=(const A& other)
{
    if (&other != this) {
        delete [] this->name;

        if (other.name) {
            size_t n = strlen(other.name) + 1;
            this->name = new char[n];
            strncpy(this->name, other.name, n);
        }
    }
    return *this;
}

Think it'd be fair feedback in the interview to point out that using C++ allocators with C strings is awkward, ie can't use strdup. There's also been a std::string class for 20 years that'd avoid :-)

- MrZipf December 17, 2014 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 vote

Thanks guys for your valuable reply.

- prakashguy50 January 28, 2015 | Flag Reply


Add a Comment
Name:

Writing Code? Surround your code with {{{ and }}} to preserve whitespace.

Books

is a comprehensive book on getting a job at a top tech company, while focuses on dev interviews and does this for PMs.

Learn More

Videos

CareerCup's interview videos give you a real-life look at technical interviews. In these unscripted videos, watch how other candidates handle tough questions and how the interviewer thinks about their performance.

Learn More

Resume Review

Most engineers make critical mistakes on their resumes -- we can fix your resume with our custom resume review service. And, we use fellow engineers as our resume reviewers, so you can be sure that we "get" what you're saying.

Learn More

Mock Interviews

Our Mock Interviews will be conducted "in character" just like a real interview, and can focus on whatever topics you want. All our interviewers have worked for Microsoft, Google or Amazon, you know you'll get a true-to-life experience.

Learn More