I and Q components and the difference between QPSK and 4QAM
Both QPSK and $4$-QAM constellations have signal points at $45, 135, 225$, and $315$ degrees (note typo in your question).  They arise from amplitude modulation (or, if
you prefer, phase modulation) of two carrier signals
(called the inphase and quadrature carriers) that are orthogonal (meaning that they
differ in phase by 90 degrees.  The canonical representation of a QPSK or $4$-QAM
signal during one symbol interval is
$$s(t) = (-1)^{b_I}\cos(2\pi f_c t) - (-1)^{b_Q}\sin(2\pi f_c t)$$
where $\cos(2\pi f_c t)$ and
$-\sin(2\pi f_c t)$ are the inphase and quadrature carrier signals at
frequency $f_c$ Hz
and $b_I, b_Q \in \{0,1\}$  are the two data bits (called the inphase
and quadrature data bits, naturally, since they are transmitted
on the inphase and quadrature carriers).  Notice that the 
inphase carrier $\cos(2\pi f_c t)$ has amplitude $+1$ or
$-1$ according as the inphase data bit has value $0$ or $1$, and
similarly the quadrature carrier $-\sin(2\pi f_c t)$ has amplitude $+1$ or
$-1$ according as the quadrature data bit has value $0$ or $1$.
Some people regard this as an inversion of the normal scheme
of things, didactically asserting
that positive amplitudes must be associated with $1$ data bits and
negative amplitudes with $0$ bits. But if we look at it from the
phase modulation perspective, a $0$ bit means that the carrier
($\cos(2\pi f_c t)$ or $-\sin(2\pi f_c t)$ as the case may be) is 
transmitted with no change in phase while a $1$ data bit creates
a change in phase (we will think of it as a phase delay)
of $180$ degrees or $\pi$ radians.  Indeed, another
way of expressing the QPSK/$4$-QAM signal is as
$$s(t) = \cos(2\pi f_c t - b_I\pi) - \sin(2\pi f_c t - b_Q\pi)$$
which makes the phase modulation viewpoint very clear. But,
regardless of which viewpoint we use, during a symbol interval,
the  QPSK/$4$-QAM signal is one of the following four signals:
$$\sqrt{2}\cos\left(2\pi f_c t + \frac{\pi}{4}\right),\\
\sqrt{2}\cos\left(2\pi f_c t + \frac{3\pi}{4}\right),\\
\sqrt{2}\cos\left(2\pi f_c t + \frac{5\pi}{4}\right),\\
\sqrt{2}\cos\left(2\pi f_c t + \frac{7\pi}{4}\right)$$
corresponding to $(b_I,b_Q) = (0,0), (1,0), (1,1), (0,1)$ respectively.

Note that the viewpoint taken here is of QPSK as consisting of
two BPSK signals on phase-orthogonal carriers. The demodulator
thus consists of two BPSK receivers (called the inphase branch
and quadrature branch, what else?).
An alternative view of QPSK as changing the phase
of a single carrier depending on a $4$-valued symbol is developed a little later.



The QPSK/$4$-QAM signal can also be expressed as
$$s(t) = \text{Re}\{B \exp(j2\pi f_c t)\} 
= \text{Re}\{[(-1)^{b_I}+j(-1)^{b_Q}] \exp(j2\pi f_c t)\}$$
where $B$ is the complex-valued baseband symbol taking on values
in $\{\pm 1 \pm j\}$ and which, when plotted on the complex plane,
gives constellation points distant $\sqrt{2}$ from the
origin and at  $45, 135, 225$, and $315$ degrees
corresponding to data bits $(b_I,b_Q) = (0,0), (1,0), (1,1), (0,1)$
respectively. Note that complementary bit pairs lie diagonally across the circle from each other so that double bit errors are less likely than single bit errors. Note also that the bits naturally
occur around the circle in Gray code order; there is no need to massage a given data bit pair $(d_I,d_Q)$ (say $(0,1)$) from "natural representation" (where it means the integer $2 = d_I+2d_Q$: $d_I$ is the LSB and $d_Q$ the MSB here) to "Gray code representation" $(b_I,b_Q) = (1,1)$ of the integer $2$ as some implementations seem to insist
on doing. Indeed, such massaging leads to poorer BER performance since the decoded $(\hat{b}_I,\hat{b}_Q)$ must be ummassaged at the receiver into the decoded data bits $(\hat{d}_I,\hat{d}_Q)$ making the single channel  bit error $$(b_I,b_Q) = (1,1) \to (\hat{b}_I,\hat{b}_Q) = (1,0)$$
into the double data bit error
$${(d_I,d_Q) = (0,1) \to (b_I,b_Q) = (1,1)\to (\hat{b}_I,\hat{b}_Q) = (1,0)}\to (\hat{d}_I,\hat{d}_Q) = (1,0).$$



If we delay the four possible signals exhibited above by $45$ degrees or
$\pi/4$ radians (subtract $\pi/4$ radians from the argument of the cosinusoid), we get
$$\sqrt{2}\cos\left(2\pi f_c t + \frac{\pi}{4}\right)\Rightarrow \sqrt{2}\cos\left(2\pi f_c t + 0\frac{\pi}{2}\right) = \sqrt{2}\cos(2\pi f_c t),\\ \sqrt{2}\cos\left(2\pi f_c t + \frac{3\pi}{4}\right)\Rightarrow \sqrt{2}\cos\left(2\pi f_c t + 1\frac{\pi}{2}\right) = -\sqrt{2}\sin(2\pi f_c t),\\
\sqrt{2}\cos\left(2\pi f_c t + \frac{5\pi}{4}\right)
\Rightarrow \sqrt{2}\cos\left(2\pi f_c t + 2\frac{\pi}{2}\right) = -\sqrt{2}\cos(2\pi f_c t) \\
\sqrt{2}\cos\left(2\pi f_c t + \frac{7\pi}{4}\right)\Rightarrow \sqrt{2}\cos\left(2\pi f_c t + 3\frac{\pi}{2}\right) = \sqrt{2}\sin(2\pi f_c t),\\$$
which give the four constellation points at $0,90,180,270$ degrees referred
to by the OP.  This form gives us another way of viewing QPSK signaling:
a single carrier signal whose phase takes on four values depending on
the input symbol which takes on values $\{0,1,2,3\}$. We express this in tabular form.
$$
\begin{array}{|c|c|c|c|c|c|c|}
\hline
(b_I,b_Q) &amp; \text{normal value} ~k &amp; \text{Gray code value} ~\ell &amp; \text{signal as above} &amp;\text{phase-modulated signal}\\
\hline
(0,0) &amp; 0 &amp; 0 &amp; \sqrt{2}\cos(2\pi f_c t) 
&amp; \sqrt{2}\cos\left(2\pi f_c t - 0\frac{\pi}{2}\right)\\
(0,1) &amp; 1 &amp; 1 &amp; \sqrt{2}\sin(2\pi f_c t) 
&amp; \sqrt{2}\cos\left(2\pi f_c t - 1\frac{\pi}{2}\right)\\
(1,1) &amp; 3 &amp; 2 &amp; -\sqrt{2}\cos(2\pi f_c t)
&amp; \sqrt{2}\cos\left(2\pi f_c t - 2\frac{\pi}{2}\right)\\
(1,0) &amp; 2 &amp; 3 &amp; -\sqrt{2}\sin(2\pi f_c t) 
&amp; \sqrt{2}\cos\left(2\pi f_c t - 3\frac{\pi}{2}\right)\\
\hline
\end{array}
$$
That is, we can regard the QPSK modulator as having input
$(b_I,b_Q)$ that it regards as the Gray code representation
of the integer $\ell \in \{0,1,2,3\}$ and produces the
output
$$\sqrt{2}\cos\left(2\pi f_c t - \ell\frac{\pi}{2}\right).$$
In other words, the phase of carrier $\sqrt{2}\cos(2\pi f_c t)$ is
modulated (changed from $0$ to $\ell\frac{\pi}{2}$) in
response to the input $\ell$.

So how does this work in real life or MATLAB, whichever comes first?
If we define a QPSK signal as having value $\sqrt{2}\cos\left(2\pi f_c t - \ell\frac{\pi}{2}\right)$ where the value of $\ell$ is typed in as 0 or 1 or 2
or 3, we will get the QPSK signal described  above, but the
demodulator will produce the bit pair $(b_I, b_Q)$ and we must
remember that the output is $\ell$ in Gray code interpretation,
that is, the demodulator output will be $(1,1)$ if $\ell$ happened
to have value $2$, and interpreting output $(1,1)$ as $3$ is a decoding
error that is not generally discussed in textbooks!