I have to agree with @Karl Knechtel - this is a pretty bad question. According to him, it is difficult to explain why, but I will do it.
The first problem is that it uses a term that does not define it, and “code reuse” means a lot of different things for different people. For some people, cutting and pasting qualifies as code reuse. As much as I like it, I have to agree with them, at least to some extent. Other people define cod reuse in ways that exclude cutting and pasting as code reuse (classifying another copy of the same code as a separate code, rather than reusing the same code). I also see this point of view, although I am inclined to think that their definition is intended more to serve a specific end than to be really meaningful (i.e., “Code Reuse” → good, “cut-paste” → bad, cut-n-paste "! =" code reuse "). Unfortunately, what we are looking at here is right on the border where you need a very specific definition of what code reuse means before you can answer question.
The definition used by your professor will most likely depend on the degree of enthusiasm he experiences for OOP - especially in the 90s (or so), when OOP simply became the main one, many people decided to define it in such a way that it only turned on cool new OOP "stuff." In order to achieve the nirvana of code reuse, you had to not only register for your OOP religion, but really believe in it! Something as mundane as composition cannot be qualified - no matter how strange they were to flip the language to make it true.
As a second important point, after decades of using OOP, several people have done quite thorough research on which code got reused and what not. Most of what I saw reached a fairly simple conclusion: it is rather difficult (i.e. essentially impossible) to match the coding style with reuse. Almost any rule that you are trying to make that will or will not lead to code reuse can and will be violated on a regular basis.
Thirdly, and what I suspect tends to be central to many people's minds is that the question that the question generally sounds as if it is something that can / can affect a typical encoder , - that you might want to choose between composition and inheritance (for example), on the basis of which “code reuse is facilitated”, or something in that order. The reality is that (for example) you have to choose between composition and inheritance, first of all, on the basis of which the problem you are trying to solve is more accurately modeled and which helps you solve this problem.
Although I do not have serious research to support the claim, I would say that the chances of reusing this code will depend on several factors that are rarely considered in most studies: 1) how similar are the problems that someone else has to solve, and 2) do they think it will be easier to adapt their code to their problem than to write new code.
I should add that in some of the studies I saw, factors were found that seemed to influence code reuse. As far as I remember, the one that was the most important / telling was not the code itself, but the documentation available for that code. Being able to use code without fundamental reverse engineering, it makes a big contribution to its reuse. The second point was simply the quality of the code - a number of studies were conducted in places / situations where they tried to promote code reuse. In a large number of cases, people tried to reuse some more code than it actually was, but had to abandon it simply because the code was not good enough - everything from errors to awkward interfaces to poor portability prevented reuse.
Summary. I'll talk about how code reuse was probably the most common, undelivered promise in software development, at least in the last few decades. Even in the best case, code reuse remains a pretty elusive goal. Trying to simplify it to the point of considering it as a true / false question, based on two factors, simplifies the question to such an extent that it is not only pointless, but also completely ridiculous. It seems to trivialize and humiliate almost all software development practices.