Skip to contentSkip to footer
  • Community
  • Jobs
  • Companies
  • Salaries
  • For employers
      Notifications

      Loading...

      Elevate your career

      Discover your earning potential, land dream jobs, and share work-life insights anonymously.

      employer cover photo
      employer logo
      employer logo

      ArcSoft

      Is this your company?

      About
      Reviews
      Pay and benefits
      Jobs
      Interviews
      Interviews
      Related searches: ArcSoft reviews | ArcSoft jobs | ArcSoft salaries | ArcSoft benefits
      ArcSoft interviewsArcSoft C++ Intern interviewsArcSoft interview


      Glassdoor

      • About / Press
      • Awards
      • Blog
      • Research
      • Contact Us
      • Guides

      Employers

      • Free Employer Account
      • Employer Centre
      • Employers Blog

      Information

      • Help
      • Guidelines
      • Terms of Use
      • Privacy and Ad Choices
      • Do Not Sell Or Share My Information
      • Cookie Consent Tool
      • Security

      Work With Us

      • Advertisers
      • Careers
      Download the App

      • Browse by:
      • Companies
      • Jobs
      • Locations
      • Communities
      • Recent posts

      Copyright © 2008-2026. Glassdoor LLC. "Glassdoor," "Worklife Pro," "Bowls" and logo are proprietary trademarks of Glassdoor LLC.

      Company Bowl sample

      Want the inside scoop on your own company?

      Check out your Company Bowl for anonymous work chats.

      Bowls

      Get actionable career advice tailored to you by joining more bowls.

      Followed companies

      Stay ahead in opportunities and insider tips by following your dream companies.

      Job searches

      Get personalised job recommendations and updates by starting your searches.

      C++ Intern Interview

      13 Oct 2023
      Anonymous employee
      Hangzhou, Zhejiang
      Accepted offer
      Neutral experience
      Average interview

      Application

      I applied online. The process took 2 weeks. I interviewed at ArcSoft (Hangzhou, Zhejiang) in Dec 2022

      Interview

      1. 3-5 min self-introduction. 2. project & past work experience.For this part, the interviewer asked me to describe some projects I have worked on in detail. For each project, he asked: What was the goal and purpose of the project? What technologies and tools did I use to implement it? What were some challenges I faced during development? What new skills did I learn from working on the project? How did I overcome the challenges and solve problems? 3. cpp basics & arlgorithm.The last part of the interview focused on assessing my C++ skills and algorithms understanding. The interviewer asked questions about C++ concepts like OOP, templates, STL etc. He also gave me simple algorithm problems to solve like searching, sorting etc. I had to explain the logic and code for the solutions.

      Interview questions [1]

      Question 1

      1. Which version of C++ do you usually use? Tell us what improvements have been made to C++ in this version and what new features have been introduced? Answer: C++11 and C++14. Smart pointers and lock management wrapper classes (lock_guard, scoped_lock, etc.) representing RAII ideas are introduced. The basic idea is to automatically manage the acquisition and release of resources, that is, when constructing an object, automatically acquire memory or locks; when destructing an object, automatically release the memory or locks it manages. Follow-up question: In what situations is scoped_lock mainly used? Can you give an example? Answer: scoped_lock is mainly used to manage multiple mutexes at the same time to avoid deadlock. For example: There is a bank account type. Each of its objects must be assigned a lock, because bank accounts may involve multiple threads making deposits or withdrawals at the same time. At this time, for transfer transactions involving two accounts, scoped_lock must be used to manage the mutex of the two account objects, otherwise a deadlock state may occur. Supplement: New features of C++11 2. Do you understand C++ polymorphism and inheritance? Let’s briefly talk about how to implement polymorphism in C++. Answer: Inheritance is divided into public, private and protected. After a subclass object inherits a parent class, it may be possible to call parent class variables or functions based on different inheritance relationships. For example: under shared inheritance, subclasses can use functions shared by the parent class. As for polymorphism, generally speaking, C++ relies on function overloading and virtual functions. Among them, function overloading is static, and virtual function overriding is dynamic. Because polymorphism relies on virtual functions, it is necessary to determine which version of the function to call based on the actual memory pointer. 3. Do you understand C++ memory management? Let’s briefly talk about C++ memory management. Answer: I just mentioned that C++ memory management mainly relies on smart pointers. For example: shared_ptr can decide whether to release based on the number of references. When the number of references is 0, the memory it manages is automatically released. Unique_ptr automatically releases the memory it manages when it is destructed. Follow-up question: Tell me about the difference between new and malloc in C++ Answer: new returns a type pointer, while malloc returns a void * pointer, which requires the user to convert it to the required type. In addition, malloc needs to calculate the requested memory size when using it, while new uses the object constructor directly. 4. Are you familiar with C++ multi-thread programming? Let’s talk about the basic use of locks, condition variables and threads in C++ multi-threaded programming. Answer: We talked about the usage of mutex wrapper, condition_variable's wait and notify, and thread initialization. In addition, spurious wake-up of condition variables and a basic implementation of a thread pool are also mentioned. 5. Have you used template programming before? Let’s talk about C++ template programming. Answer: Used. In addition to basic template classes and template functions, I have also implemented iterators and used template extraction techniques. Mainly refer to the anatomy of the STL template library.
      Answer question