Abstract:C++ Programming is an important foundation course for computer and its related majors. C++ programming language is flexible and complicated, thus, students might feel difficult in learning this course. However, traditional teaching approaches mainly focus on knowledge imparting while ignoring to cultivate students to obtain abilities of analyzing and solving problems. This paper proposes a new C++ teaching approach, which aims to solve problems in practical projects. This approach combines function points in projects and C++ knowledge points; then by evolving project contents, the proposed approach can integrate knowledge imparting and ability cultivation of analyzing and solving problems. Practical teaching results demonstrate that the proposed approach can effectively enhance the teaching results of C++ programming course.